[Python] Re: doppio backslash non va
Nicola Larosa
nico a tekNico.net
Ven 2 Feb 2007 20:44:41 CET
SMZE wrote:
> Il problema è che se fai a='\\x' a varrà '\\x' mentre io vorrei che
> valga '\x' e basta. Con
> >>> a=r'\x'
> >>> a
> '\\x'
>
> con print a otterrei quello che voglio. Ma posso assegnarlo ad una
> variabile? non penso.
Oh, l'eterna lotta tra ciò che appare, e ciò che è. Il noumeno, o il
fenomeno? Il genotipo, o il fenotipo? Chi avrà ragione, "a" o "print a"?
Cosa c'è *veramente* nella variabile "a"? Scopriamolo!
>>> a = '\\x'
>>> len(a)
2
Mmh... son due caratteri, non tre. Vediamo il secondo:
>>> a[1]
'x'
...e se il secondo è 'x', il primo è...
>>> a[0]
'\\'
Ma come! Ora il primo sono due?!?
>>> print a[0]
\
No, sembra essere uno solo...
>>> ord(a[0])
92
...e consiste nel valore (decimale) 92. Se lo ritrasformiamo in carattere:
>>> chr(92)
'\\'
Dalli con due caratteri!
>>> print chr(92)
\
No, dai, dev'essere per forza uno solo! Certo che quest'interprete è
proprio birbone! Ma... non sarà che cerca di essere d'aiuto, e mostra due
backslash invece di uno, perché è così che vanno scritti nelle stringhe?
--
Nicola Larosa - http://www.tekNico.net/
The compiler doesn't care if the person who forgot the curly brace
is wearing a black lace bra. -- Kathy Sierra, August 2006
Maggiori informazioni sulla lista
Python