MC102 - Algoritmos e Programação de Computadores
MC102 Horários Plano de
desenvolvimento
Plano de
aulas
Oferecimento
anterior

Formatação em Python

Existem várias maneiras de se formatar strings em Python. Iremos apresentar vários exemplos, que também podem ser testados na Python shell. Para saber mais, de forma completa e detalhada, consulte a documentação oficial.

Método format()

Recebe um valor e, opcionalmente, uma especificação de formatação como parâmetro. Retorna uma string.

>>> format(3)        # apenas o valor
'3'
>>> format(3, "d")   # valor e indicação de inteiro
'3'
>>> format(3, ".2f") # valor e indicação de float com duas casas decimais
'3.00'

Método str.format()

A string str é um template com pontos de substituição delimitados por pares {}. Estes pontos serão preenchidos com os valores fornecidos ao método format(), respeitando-se a posição ou o nome do parâmetro. Veja os exemplos:

Parâmetros por posição

>>> Apenas um parâmetro
... "a = {}".format(100)
'a = 100'

>>> Dois parâmetros, preenchidos na ordem natural
... "a = {}, b = {}".format(100, 200)
'a = 100, b = 200'

>>> Dois parâmetros, com indicação da ordem natural
... "a = {0}, b = {1}".format(100, 200)
'a = 100, b = 200'

>>> Dois parâmetros, indicando ordem inversa
... "a = {1}, b = {0}".format(200, 100)
'a = 100, b = 200' 

>>> Dois parâmetros, com duas ocorrências do segundo
... "a = {0}, b = {1}, c = {1}".format(100, 200)
'a = 100, b = 200, c = 200'

Parâmetros por nome

>>> Um parâmetro, duas ocorrências
... "a = {x}, b = {x}".format(x = 100)
'a = 100, b = 100'

>>> Dois parâmetros, dois nomes 
... "a = {x}, b = {y}".format(x = 100, y = 200)
'a = 100, b = 200'

>>> Dois parâmetros, dois nomes utilizados em ordem inversa
>>> "b = {y}, a = {x}".format(x = 100, y = 200)
'b = 200, a = 100'

Formatação por tipo

Será feita no template, precedida por :. Pode ser colocada isoladamente :<desc_tipo> ou após a indicação posição <pos>:<desc_tipo> ou do nome <nome>:<desc_tipo> ou . Veja os exemplos com o controle de casas decimais de um float.

>>> Um parâmetro, um float com duas casas decimais
"a = {:.2f}".format(100)
'a = 100.00'
    
>>> Um parâmetro, duas e três casas decimais
"a = {0:.2f}, b = {0:.3f}".format(100)
'a = 100.00, b = 100.000'

>>> Dois parâmetros, ordem inversa 
"b = {y:.1f}, a = {x:.2f}".format(x = 100.1234, y = 100.567)
'b = 100.6, a = 100.12'

Operador % (deprecated)

Esta forma utiliza uma string template com pontos de substituição indicados por % ou %<desc_tipo>, seguida do caractere % e de um valor ou de uma lista de valores entre parênteses (tupla). Esta forma é antiga e poderá não funcionar nas próximas versões de Python.

>>> "a = %d" % 100
'a = 100'

>>> "a = %d, b = %d" % (100, 200)
'a = 100, b = 200'

>>> "a = %.2f, b = %.5f" % (100, 200.123)
'a = 100.00, b = 200.12300'