[Python] Re: doppio backslash non va
Manlio Perillo
manlio_perillo a libero.it
Ven 2 Feb 2007 21:14:17 CET
Nicola Larosa ha scritto:
> 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?!?
>
> [...]
Questa è assolutamente da aggiungere nelle FAQ!
Comunque aggiungo che l'interprete interattivo, quando deve valutare un
oggetto (che è quello che gli fai fare con '>>> a'), usa la funzione repr.
Ossia
repr(a)
repr (ridefinibile per una classe, aggiungendo un metodo __repr__), di
default restituisce una rappresentazione dell'oggetto, utile per il debug.
Saluti Manlio Perillo
Maggiori informazioni sulla lista
Python