[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