Dado:
a = 1
b = 10
c = 100
Como exibir um zero inicial para todos os números com menos de dois dígitos?
Esta é a saída que estou esperando:
01
10
100
python
integer
string-formatting
ashchristopher
fonte
fonte
x = "%02d.txt" % i
gera TypeError (não pode concatenar objetos 'str' e 'int'), masx = "%02d.txt" % (i,)
não o faz. Interessante. Gostaria de saber onde é que documentou%
formatador de strings.Você pode usar
str.zfill
:impressões:
fonte
"{1:02d}"
não pode ter variáveis no lugar de2
(como se você estivesse criando uma função dinâmica).No Python 2.6+ e 3.0+, você usaria o
format()
método string:ou usando o built-in (para um único número):
Consulte a documentação do PEP-3101 para obter as novas funções de formatação.
fonte
impressões:
fonte
One zero:{0:02}, two zeros: {0:03}, ninezeros: {0:010}'.format(6)
print '{:02}'.format(1)
Ou isto:
print '{0:02d}'.format(1)
fonte
No Python> = 3.6 , você pode fazer isso de forma sucinta com as novas strings f que foram introduzidas usando:
que imprime a variável com o nome
val
com umfill
valor de0
e umwidth
de2
.Para o seu exemplo específico, você pode fazer isso muito bem em um loop:
que imprime:
Para obter mais informações sobre strings-f, dê uma olhada no PEP 498 onde foram introduzidas.
fonte
resulta em:
Leia mais informações sobre a formatação de cadeias usando% na documentação.
fonte
A maneira pitônica de fazer isso:
Dessa forma, a string original será retornada inalterada se seu comprimento for maior que string_width. Exemplo:
Resultados:
fonte
Ou outra solução.
fonte
"{0:0>2}".format(number)
, se alguém quer nLeadingZeros eles devem notar que eles também podem fazer:"{0:0>{1}}".format(number, nLeadingZeros + 1)
Use uma string de formato - http://docs.python.org/lib/typesseq-strings.html
Por exemplo:
fonte
É assim que eu faço:
Basicamente, o zfill pega o número de zeros à esquerda que você deseja adicionar, por isso é fácil pegar o número maior, transformá-lo em uma string e obter o comprimento, assim:
fonte
fonte
Você pode fazer isso com f strings .
Isso imprimirá um comprimento constante de 8 e preencherá o resto com a liderança
0
.fonte
Usar:
Ou com o
math
módulo:fonte
O 5 é o número total de dígitos.
Eu usei este link: http://www.datasciencemadesimple.com/add-leading-preceding-zeros-python/
fonte
Se estiver lidando com números com um ou dois dígitos:
'0'+str(number)[-2:]
ou'0{0}'.format(number)[-2:]
fonte