Dany:
a = 1
b = 10
c = 100
Jak wyświetlić zero na początku dla wszystkich liczb zawierających mniej niż dwie cyfry?
Oto wynik, którego oczekuję:
01
10
100
python
integer
string-formatting
Ashchristopher
źródło
źródło
x = "%02d.txt" % i
podnosi TypeError (nie może łączyć obiektów „str” i „int”), alex = "%02d.txt" % (i,)
nie robi tego. Ciekawy. Zastanawiam się, gdzie to jest udokumentowane%
formatera łańcuchowego.Możesz użyć
str.zfill
:drukuje:
źródło
"{1:02d}"
nie mogą mieć zmiennych w miejsce2
(np. Jeśli tworzysz funkcję dynamiczną).W Python 2.6+ i 3.0+ użyłbyś
format()
metody łańcuchowej:lub używając wbudowanego (dla jednego numeru):
Zobacz nowe funkcje formatowania w dokumentacji PEP-3101 .
źródło
drukuje:
źródło
One zero:{0:02}, two zeros: {0:03}, ninezeros: {0:010}'.format(6)
print '{:02}'.format(1)
Albo to:
print '{0:02d}'.format(1)
źródło
W Pythonie> = 3.6 możesz to zrobić zwięźle z nowymi ciągami f, które zostały wprowadzone przy użyciu:
który drukuje zmiennej o nazwie
val
ofill
wartości0
orazwidth
z2
.W twoim konkretnym przykładzie możesz to zrobić ładnie w pętli:
który drukuje:
Aby uzyskać więcej informacji na temat f-stringów, zobacz PEP 498, w którym zostały wprowadzone.
źródło
prowadzi do:
Przeczytaj więcej informacji na temat formatowania łańcucha przy użyciu% w dokumentacji.
źródło
Pythoniczny sposób na zrobienie tego:
W ten sposób oryginalny ciąg znaków jest zwracany bez zmian, jeśli jego długość jest większa niż szerokość_łańcucha. Przykład:
Wyniki:
źródło
Lub inne rozwiązanie.
źródło
"{0:0>2}".format(number)
dodałbym parametr dla jasności - jeśli ktoś będzie chciał nLeadingZeros, powinien zauważyć, że może także:"{0:0>{1}}".format(number, nLeadingZeros + 1)
Użyj ciągu formatu - http://docs.python.org/lib/typesseq-strings.html
Na przykład:
źródło
Tak to robię:
Zasadniczo Zfill przyjmuje liczbę wiodących zer, które chcesz dodać, więc łatwo jest wziąć największą liczbę, przekształcić ją w ciąg i uzyskać długość, jak poniżej:
źródło
źródło
Można to zrobić z f strun .
Spowoduje to wydrukowanie stałej długości 8, a resztę będzie uzupełniać prowadzeniem
0
.źródło
Posługiwać się:
Lub z
math
modułem:źródło
5 oznacza liczbę cyfr całkowitych.
Użyłem tego linku: http://www.datasciencemadesimple.com/add-leading-preceding-zeros-python/
źródło
W przypadku liczb składających się z jednej lub dwóch cyfr:
'0'+str(number)[-2:]
lub'0{0}'.format(number)[-2:]
źródło