End of line while scanning string literal

Résolu
Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   -  
Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Ce message apparait avec la ligne suivante malgré le r de raw_string placé devant la chaine

(évidemment à cause du \)

s = r'toto\'

Jamais vu ça depuis que je pratique Python

Que peux-t-on faire de plus, à part doubler le \ mais pas normal avec le r devant...

Merci d'avance pour vos réponses
Windows / Edge 105.0.1343.53

5 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour,

    Ce comportement est documenté: "une chaîne de caractères brute ne peut pas se terminer par un nombre impair de barres obliques inversées".

    0
  2. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Ah ok,

    Bon, malgré le r qui sert justement à ignorer les escapes..

    On va faire avec, merci

    0
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     

    Bonjour,

    La manière la plus naturelle serait à mon avis d'écrire :

    s = "toto'"

    Bonne chance

    0
  4. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Bonjour,

    Non, non

    Le dernier caractère est bel et bien un backslash ..

    s = r'toto\'

    seule solution : s = r'toto\\'

    0
    1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
       

      Ah ok. Dans ce cas, il faut effectivement échapper le \. Mais le r devant la chaîne n'est pas utile, tu peux écrire directement:

      s = "toto\\"
      s = 'toto\\'

      Bonne chance

      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    ben oui maintenant qu'on a vu que le r ne servait à rien dans ce cas

    en fait, je n'ai pas tout dit :-):

    s = r'tagada\pouete\pouete\\'

    le r sert au moins pour les 2 premiers ...

    0