Descubra Como Utilizar o Método format() em Python
No artigo de hoje você vai aprender em detalhes como utilizar o método format() na linguagem de programação Python.
Ou seja, esse tipo de conhecimento é bem interessante em diversos casos que vamos ver hoje totalmente na prática.
Bora colocar a mão no código??
Sobre o Método format()
Primeiramente, o método format() em python serve basicamente para criar uma string que contém campos entre chaves que são substituidos pelos argumentos de format.
Logo abaixo, vou deixar um exemplo executado no ambiente interativo do terminal python:
>>> str = 'O blog {0} merece {1} estrelas'
>>> str.format('Programador Viking', 5)
'O blog Programador Viking merece 5 estrelas'
>>>
Portanto, repare que os campos de substituição na string que estão entre chaves ‘{}’ estão associadas aos parâmetros do método format().
Vale ressaltar que a numeração dos parâmetros na string inicia pelo numero zero para o primeiro parâmetro, 1 para o segundo parâmetro e assim por diante.
Mas nada impede de usar um parâmetro mais de uma vez e em fora de ordem como no exemplo abaixo:
>>> str = '{0} é um {1} companheiro, {1} companheiro é o {0}, ninguém pode negar'
>>> str.format('David', 'bom')
'Paulo é um bom companheiro, bom companheiro é o Paulo, ninguém pode negar'
>>> str.format('José', 'ótimo')
'João é um ótimo companheiro, ótimo companheiro é o João, ninguém pode negar'
>>>
Ou seja, também é possível usar campos nomeados, porém esses campos devem vir depois dos parâmetros simples no método format.
Para exemplificar, criei o programa idade.py conforme o código abaixo:
texto = '{0} tem {idade} anos de idade'
print('Progama para calcular a idade de uma pessoa',end='\n\n')
nome = input('Entre com o nome da pessoa: \n')
a1 = int(input('Entre com o ano de nascimento: \n'))
a2 = int(input('Entre com ano atual: \n'))
print(texto.format(nome, idade = a2 - a1 ))
Logo depois, dentro dos campos a serem substituídos podemo especificar formatações numéricas ou para strings usando as seguintes regras:
Leia também: Os 7 Melhores Livros Para Aprender Python Sozinho
Usando format com strings:
Primeiramente, vamos conhecer a estrutura base:
:[preencher][alinhar][largura].[precisão]
Logo depois com o seguinte esquema:
preencher | alinhar | largura | precisão |
Qualquer caractere | < esquerda> direita^ centro | largura miníma do campo | largura máxima do campo |
Ou seja, executando o programa test_format.py, onde o código pode ser encontrado logo abaixo.
Logo depois, podemos ver várias formas de saída usando format() com largura e precisão:
# Programa para testar a função format()
s = 'Eu Adoro Python'
# alinha a direita com espaços em branco
print("{0:>20}".format(s))
# alinha a direita com símbolos #
print("{0:#>20}".format(s))
# alinha ao centro usando espaços em branco a esquerda e a direita
print("{0:^20}".format(s))
# imprime só as primeiras oito letras
print("{0:.8}".format(s))
Usando format com números:
Primeiramente, antes de iniciarmos a explicação de como formatar números, vamos ver como podemos fazer essa formatação sem o uso do método format().
Atenção:
Portanto, esse tipo de formatação era usado até a versão 2 do python e estou explicando apenas para fins didáticos. Portanto, prefira sempre utilizar o método format().
Ou seja, a estrutura base é:
%[flag][tamanho].[precisão][conversor]
Logo depois vamos conhecer as flags, que são:
Flag | Significado |
# | Prefixa os inteiros com 0, 0o, 0O, 0x, 0X. o ou O para octais e x ou X hexadecimais |
+ | Força a saída com sinal. |
Logo depois vamos conhecer os conversores, que são:
Conversor | Significado |
d | Inteiro. |
i | Inteiro. |
f | Float. |
F | Float. |
o | Inteiros em octal. |
x | Inteiros em hexadecimal minuscula |
X | Inteiros em hexadecimal maiúsculas |
e | Float em formato exponencial minusculo |
E | Float em formato exponencial maiúsculo |
g | Mesmo que “e” se expoente é maior do que -4 ou inferior a precisão, “f” de outra forma. |
G | Mesmo que “E” se expoente é maior do que -4 ou inferior a precisão, “F” de outra forma. |
c | Um único caractere. |
s | String (converte qualquer objeto python usando str ()). |
Logo depois, mais alguns exemplos para executar no ambiente iterativo:
>>> print('%+d' % 123)
+123
>>> print('%+4.2f' % 12.3678)
+12.37
>>> print('%x' % 123)
7b
>>> print('%#x' % 123)
0x7b
Agora vamos ver como format() trabalha com os números, a sua estrutura base é:
:[preencher][alinhar][sinal][largura].[precisão][tipo]
Primeiramente vamos entender o seguinte esquema:
preencher | alinhar | largura | precisão |
Qualquer caractere | < esquerda> direita^ centro | largura miníma do campo | largura máxima do campo |
Logo depois, vou deixar alguns exemplos para testar no ambiente iterativo:
>>> "{0:4}".format(-123)
'-123'
>>> "{0:4}".format(123)
' 123'
>>> "{0:4.2f}".format(33.3287)
'33.33'
>>> "{0:+4.2f}".format(33.3287)
'+33.33'
>>> "{0:+4.2e}".format(33.3287)
'+3.33e+01'
>>> "{0:b}".format(123)
'1111011'
Por fim, vamos alterar o programa media.py para termos uma saída dos dados melhorada:
# Programa para calcular a media de um aluno
print('Programa para calcular a media de um aluno', end='\n\n')
nome = input('Entre com o nome do aluno: \n')
nota1 = float(input("Entre com a primeira nota: \n"))
nota2 = float(input("Entre com a segunda nota: \n"))
media = (nota1 + nota2) / 2
print('{0} teve media igual a: {1:4.2f}'.format(nome, media))
Se executarmos novamente o programa com as mesmas entradas, podemos perceber que a saída fica de acordo com o esperado.
Conclusão
Em conclusão, neste artigo vimos como funciona o método format() em Python, um ótimo recurso para utilizarmos em nossos programas.
Ou seja, se você quer formatar um conteúdo essa é uma excelente opção.
Clique no botão abaixo para acessar mais de 1400 cursos completos e com certificado válido.
ACESSAR CURSOS COM CERTIFICADOInvista em você e conquiste uma excelente carreira profissional na área da tecnologia.
Enfim, muito obrigado por acompanhar o blog e lhe desejo muito sucesso em sua jornada!
Sobre o Autor
5 Comentários
sabe me explicar o porque do 0 antes dos dois pontos?
{0:^8}
Olá, já faz quase 4 meses mas para deixar registrado caso alguém ache o artigo, o 0 é o índice que o elemento se encontra no format. É opcional, mas podemos especificar. Por exemplo:
a = ‘Olá’
b = ‘Mundo
print(‘{0} {1}’.format(a, b))
Resultado: Olá Mundo.
Por padrão ele já coloca na ordem que você escreveu no format, escrevendo um código assim por exemplo, obtém o mesmo resultado: print(‘{} {}’.format(a, b))
Podemos alterar a ordem, lembrando que os índices começam com 0:
print(‘{1} {0}’.format(b, a))
Resultado: ‘Mundo Olá’
Espero que tenha entendido! 🙂
Excelente explicação e obrigado por compartilhar o conhecimento!
Muito, obrigada!! Estou iniciando os meus estudos no Python e havia encontrado um erro. Você me ajudou a solucioná-lo. Gratidão!
Boa noite, fico feliz em ajudar. Continue acompanhando nosso site, tem muita coisa boa vindo por ai