[Python] Allineamento stringe [ERA]: [NIUBBO] Python razzista? ; -)

Lorenzo Sutton lsutton a libero.it
Ven 4 Mar 2011 09:49:39 CET


Ciao,

Estratti da Cesco:

> [...] ho bisogno di allineare a destra un numero posso scrivere:
> print "{0:-5}".format(123)
> Mi restituisce "<spazio><spazio>123"

O anche:

print ("%5d") % 123

> Ma se ho bisogno di fare la stessa cosa con una stringa:
> print "{0:-5}".format("Joe")
> Mi solleva un eccezione? ("Sign not allowed in string format specifier")
>
> Eppure se tento di allineare a sinistra quello stesso testo funziona 
> perfettamente:
> print "{0:5}".format("Joe")
> infatti restituisce correttamente:
> "Joe<spazio><spazio>"
> A parte gli scherzi, posso chiedervi come si fa a fare il padding verso destra di una stringa senza scrivere una funzione?
Se ho capito bene vuoi fare questo?

 >>> s = 'Joe'
 >>> s.ljust (5)
'Joe  '
 >>> s.rjust (5)
'  Joe'

 >>> help (str.ljust)
...
ljust(...)
     S.ljust(width[, fillchar]) -> string

     Return S left-justified in a string of length width. Padding is
     done using the specified fill character (default is a space).

> Quindi questo mi sembra un chiaro episodio di discriminazione verso le povere stringhe! :-D
Razzista? Ma no, ;-) anzi Python è il linguaggio più aperto del mondo un 
melting pot di di funzionale e object-oriented che convivono 
pacificamente senza farsi la guerra.. tipo che cambiano in continuazione..
  E in più IMHO ha una delle comunità più aperte, amichevole e d'aiuto 
tra tutti i linguaggi :-)

Lorenzo.



Maggiori informazioni sulla lista Python