banner python
22/03/2020
Python: formatação de saída

Em Python, você pode usar um print() para imprimir algo para o usuário. O que vai ser exibido ainda pode ser formatado usando algumas funções.


Uma das maneiras é usando o operador % (módulo), que também é conhecido como operador de formatação ou de interpolação de strings. Veja os exemplos a seguir.

print('%s é uma string, mas %d é um inteiro' % ('casa', 35))

#casa é uma string, mas 35 é um inteiro
x = '%10s' % ('teste')
print(x)

#     teste

Outra forma de realizar essa formatação é através do método .format(), que possui sintaxe semelhante ao operador %, na maioria dos casos, mas com algumas novas e diferentes opções. Veja os exemplos.

Dá para acessar os argumentos pela posição:

print("Olá, {} e {}!".format('pessoa1','pessoa2'))
#Olá, pessoa1 e pessoa2!

print("Olá, {1} e {0}!".format('pessoa1','pessoa2'))
#Olá, pessoa2 e pessoa1!

Ou acessar os argumentos pelo nome:

print('data {dia}/{mes}'.format(dia=25, mes=12))
numeros = {'x': 35, 'y':5.5}
print('números {x} e {y}'.format(**numeros))

#data 25/12
#números 35 e 5.5

Além disso, é possível expressar números reais ou porcentagem:

print('{:,}'.format(1234567890))
print('Gasolina: R${:.2f}'.format(4.356))
acertos = 53
questoes = 60
print('Respostas corretas: {:.2%}'.format(acertos/questoes))

#1,234,567,890
#Gasolina: R$4.36
#Respostas corretas: 88.33%

Também é possível usar o método .replace() para substituir os valores em uma string.

a = "Viva o Brazil!"
b = a.replace("Brazil", "BRASIL")
print(b)

#Viva o BRASIL!


t = "Todos passam por aquilo, aquilo e aquilo."
v = t.replace("aquilo", "isso", 2)
print(v)

#Todos passam por isso, isso e aquilo.

A diferença é que o replace apenas substitui os valores, enquanto o format consegue realizar mais tarefas de formatação, não somente a substituição. Veja o exemplo:

url = 'http://exemplo.exemplo/categoria=33&post=13'
url = url.replace("categoria=33","categoria=35")
url = url.replace("post=13","post=14")
print(url)

#http://exemplo.exemplo/categoria=35&post=14


categoria=35
post=14
url = 'http://exemplo.exemplo/categoria={}&post={}'.format(categoria,post)
print(url)

#http://exemplo.exemplo/categoria=35&post=14

Para mais informações sobre o tema, acesse os links:
https://docs.python.org/pt-br/3/library/functions.html#print
https://docs.python.org/2/library/stdtypes.html#string-formatting
https://docs.python.org/2/library/string.html
https://www.w3schools.com/python/ref_string_replace.asp

Postagens relacionadas
Trabalhando com listas em Python Ver

Aprenda um pouco mais sobre listas em Python.