Oczywiście, należy użyć metody .format. Np
print '{:10s} {:3d} {:7.2f}'.format('xxx', 123, 98)
print '{:10s} {:3d} {:7.2f}'.format('yyyy', 3, 1.0)
print '{:10s} {:3d} {:7.2f}'.format('zz', 42, 123.34)
wypisze
xxx 123 98.00
yyyy 3 1.00
zz 42 123.34
Można dostosować rozmiary pól zgodnie z potrzebami. Zauważ, że .format
działa niezależnie od print
, aby sformatować ciąg znaków. Po prostu użyłem print, aby wyświetlić ciągi. Krótkie wyjaśnienie:
Format
10s
ciągiem z 10 pomieszczeń, pozostawionych uzasadnione domyślnego formatu
3d
liczbą całkowitą zastrzegając 3 spacje, prawy uzasadnione domyślnie
7.2f
formacie float, zastrzegając 7 przestrzenie, 2 po przecinku, prawo domyślnie ustawione.
Istnieje wiele dodatkowych opcji do pozycji/ciągi formatu (wyściółka, lewo/prawo usprawiedliwiać itp), String Formatting Operations dostarczy więcej informacji.
Dokładnie tego, czego szukałem, dziękuję! – anio
Uwaga: '7.2f' wymusza precyzję 2, ale 7 to tylko _minimum_ szerokość. W przypadku danych wejściowych, które nie jive z formatami, nie można uzyskać szerokości 7. np. mimo że 12345.7 ma tylko 7 znaków, '' {: 7.2f} '. format (12345.7) 'ma szerokość 8. – jkmacc
@jkmacc dobry punkt, dziękuję za jawne stwierdzenie tego (link zapewnia więcej informacji na ten temat i więcej , również na samym górze # 4, ale jest to bardziej wyraźne/łatwiejsze :) – Levon