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.

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a