2013-01-13 10 views
5

Obecnie piszę kod, który klocki ciąg z przestrzeni za pomocą Pythona format specification mini language:truncate i pad użyciu specyfikacji formatu mini język

print('''{user:<10}, you're welcome!'''.format(user='John Doe')) 

Wyjście jest:

John Doe , you're welcome! 

Jednak jeśli Użytkownika nazwa jest podobna do "Joooooooooooohn Doe", chciałbym wypisać:

Jooooooooo, you're welcome! 

Czy istnieje sposób wykonywania obcinania ORAZ dopełniania przy użyciu specyfikacji formatu mini język?

Dzięki!

Odpowiedz

11

Od tej strony związane z:

Dla typów non-Number [precyzja] wskazuje maksymalny rozmiar pola - innymi słowy, ile znaków będą stosowane od zawartości pola. Precyzja nie jest dozwolona dla wartości całkowitych .

Precision jest wprowadzany przez okres

format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]

więc prawidłowa format string jest {user:<10.10}.

>>> '{0:<10.10}'.format('1234567') 
'1234567 ' 

>>> '{0:<10.10}'.format('123456789034') 
'1234567890'