Python Academy · Aula

Strings de modelo e str.format

Conheça outras ferramentas de formatação

Aula 4 de 413 etapas

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.Template usa marcadores $name e é 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))
Grátis para começar

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

  1. Expressões de f-string
  2. Especificadores de formatação
  3. Minilinguagem de formatação
  4. Strings de modelo e str.format
← Voltar para Python Academy