End of line while scanning string literal

Résolu
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   -  
Phil_1857 Messages postés 1872 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

A voir également:

5 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

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
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 

Ah ok,

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

On va faire avec, merci

0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 879
 

Bonjour,

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

s = "toto'"

Bonne chance

0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 

Bonjour,

Non, non

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

s = r'toto\'

seule solution : s = r'toto\\'

0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 879
 

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

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

Posez votre question
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 

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