Descubra Como Utilizar o Método format() em Python

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:

preencheralinharlarguraprecisão
Qualquer caractere< esquerda> direita^ centrolargura miníma do campolargura 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:

FlagSignificado
#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:

ConversorSignificado
dInteiro.
iInteiro.
fFloat.
FFloat.
oInteiros em octal.
xInteiros em hexadecimal minuscula
XInteiros em hexadecimal maiúsculas
eFloat em formato exponencial minusculo
EFloat em formato exponencial maiúsculo
gMesmo que “e” se expoente é maior do que -4 ou inferior a precisão, “f” de outra forma.
GMesmo que “E” se expoente é maior do que -4 ou inferior a precisão, “F” de outra forma.
cUm único caractere.
sString (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:

preencheralinharlarguraprecisão
Qualquer caractere< esquerda> direita^ centrolargura miníma do campolargura 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 CERTIFICADO

Invista 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!

Tags: | |

Sobre o Autor

Programador Viking
Programador Viking

DICA EXTRA: Algumas pessoas estão me perguntando qual é o curso que recomendo para quem deseja aprender programação, mesmo sem ter qualquer conhecimento sobre o assunto. Minha recomendação, tanto para quem está iniciando, como para quem já possui mais experiência, é essa AQUI...

5 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.


    • 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! 🙂

plugins premium WordPress