Strings de modelo e str.format
Conheça outras ferramentas de formatação
Strings de modelo e str.format é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.
Outras ferramentas de formatação
Além das cadeias de caracteres f, o Python oferece mais duas ferramentas de formatação: o método str.format() e a classe string.Template. Cada uma é adequada a situações diferentes.
print('Hello, {}!'.format('World'))Noções básicas de str.format
str.format() substitui os marcadores {} pelos argumentos, na ordem. Esse recurso é anterior às cadeias de caracteres f e ainda aparece em muito código.
msg = '{} is {} years old'.format('Ada', 36)
print(msg)Índices posicionais
Coloque números entre as chaves para reutilizar ou reordenar os argumentos pela posição.
print('{0} {1} {0}'.format('echo', 'once'))Marcadores nomeados
Use nomes entre as chaves e forneça argumentos nomeados. Isso torna os modelos autoexplicativos.
print('{name} scored {score}'.format(name='Lin', score=95))Os especificadores de formato continuam válidos
A mesma microlinguagem funciona depois dos dois-pontos em str.format, permitindo controlar a largura, a precisão e o alinhamento.
print('{:.2f}'.format(3.14159))
print('{:>8}'.format('hi'))Formatação a partir de um dicionário
Descompacte um dicionário em str.format com ** para preencher marcadores nomeados.
data = {'city': 'Rome', 'temp': 27}
print('{city}: {temp} C'.format(**data))Introdução às cadeias de modelo
string.Template usa marcadores baseados em $. Ele é intencionalmente simples e mais seguro para modelos fornecidos pelo usuário, pois não pode executar expressões arbitrárias.
from string import Template
t = Template('Hello, $name!')
print(t.substitute(name='World'))Chaves para maior clareza
Coloque o nome de um marcador entre chaves, como em ${name}, quando ele estiver ao lado de outro texto.
from string import Template
t = Template('${item}s cost $$5')
print(t.substitute(item='apple'))safe_substitute
substitute gera KeyError para nomes ausentes. Já safe_substitute deixa os marcadores desconhecidos inalterados.
from string import Template
t = Template('$greeting, $name')
print(t.safe_substitute(greeting='Hi'))Quando usar cada uma
Orientações: prefira cadeias de caracteres f no código cotidiano. Use str.format quando o modelo estiver separado dos dados. Use modelo para modelos não confiáveis fornecidos pelo usuário.
name = 'Sam'
print(f'f-string: {name}')
print('format: {}'.format(name))Modelos a partir de texto externo
Como o texto do modelo é apenas uma string, você pode carregá-lo de um arquivo de configuração ou de um banco de dados e, depois, substituir os valores em tempo de execução.
from string import Template
stored = 'Order $id ships to $city'
t = Template(stored)
print(t.substitute(id=7, city='Oslo'))Verificação rápida
Qual ferramenta é mais segura para substituir valores em um modelo fornecido por um usuário não confiável?
Recapitulação: strings de modelo e str.format
Resumo das alternativas às f-strings:
str.format()usa marcadores{}e oferece suporte a especificações de formato posicionais, nomeadas e completas.string.Templateusa marcadores$namee é seguro para entradas não confiáveis.- safe_substitute mantém no lugar os marcadores desconhecidos.
- Prefira f-strings no código normal; use estas ferramentas quando os modelos forem externos ou não confiáveis.
from string import Template
print(Template('Bye, $who').substitute(who='all'))
print('Done: {}'.format(True))Aprenda Python com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 76
- Aulas
- 320
Perguntas Frequentes
A aula “Strings de modelo e str.format” é grátis?
Sim — o texto completo de “Strings de modelo e str.format” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.
O que vou aprender em “Strings de modelo e str.format”?
Conheça outras ferramentas de formatação Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Python Academy?
Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Strings de modelo e str.format”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Python Academy?
Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Expressões de f-string
- Especificadores de formatação
- Minilinguagem de formatação
- Strings de modelo e str.format