Python Academy · Lección

Cadenas de plantilla y str.format

Conozca otras herramientas de formato

Lección 4 de 413 pasos

Cadenas de plantilla y str.format es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

Otras herramientas de formato

Además de los f-strings, Python ofrece otras dos herramientas de formato: el método str.format() y la clase string.Template. Cada una resulta adecuada para situaciones diferentes.

print('Hello, {}!'.format('World'))

Conceptos básicos de str.format

str.format() reemplaza los marcadores {} por argumentos, en orden. Es anterior a los f-strings y todavía aparece en mucho código.

msg = '{} is {} years old'.format('Ada', 36)
print(msg)

Índices posicionales

Coloque números entre las llaves para reutilizar o reordenar los argumentos según su posición.

print('{0} {1} {0}'.format('echo', 'once'))

Marcadores con nombre

Use nombres entre las llaves y proporcione argumentos con nombre. Esto hace que las plantillas se expliquen por sí mismas.

print('{name} scored {score}'.format(name='Lin', score=95))

Los especificadores de formato siguen funcionando

El mismo minilenguaje funciona después de los dos puntos en str.format, por lo que puede controlar el ancho, la precisión y la alineación.

print('{:.2f}'.format(3.14159))
print('{:>8}'.format('hi'))

Formatear a partir de un diccionario

Desempaquete un diccionario en str.format con ** para completar los marcadores con nombre.

data = {'city': 'Rome', 'temp': 27}
print('{city}: {temp} C'.format(**data))

Presentación de las cadenas Template

string.Template usa marcadores basados en $. Está diseñado para ser sencillo y más seguro con plantillas proporcionadas por usuarios, ya que no puede ejecutar expresiones arbitrarias.

from string import Template
t = Template('Hello, $name!')
print(t.substitute(name='World'))

Llaves para mayor claridad

Rodee un nombre de marcador con llaves, como ${name}, cuando esté junto a otro texto.

from string import Template
t = Template('${item}s cost $$5')
print(t.substitute(item='apple'))

safe_substitute

substitute genera un KeyError si faltan nombres. En cambio, safe_substitute deja intactos los marcadores desconocidos.

from string import Template
t = Template('$greeting, $name')
print(t.safe_substitute(greeting='Hi'))

Cuándo usar cada opción

Recomendaciones: prefiera los f-strings para el código cotidiano. Use str.format cuando la plantilla esté separada de los datos. Use Template para plantillas que no sean de confianza y proporcionen los usuarios.

name = 'Sam'
print(f'f-string: {name}')
print('format: {}'.format(name))

Plantillas a partir de texto externo

Como el texto de la plantilla es solo una cadena, puede cargarlo desde un archivo de configuración o una base de datos y sustituir los valores en tiempo de ejecución.

from string import Template
stored = 'Order $id ships to $city'
t = Template(stored)
print(t.substitute(id=7, city='Oslo'))

Comprobación rápida

¿Qué herramienta es más segura para sustituir valores en una plantilla proporcionada por un usuario que no es de confianza?

Repaso: cadenas de plantilla y str.format

Resumen de las alternativas a las f-strings:

  • str.format() utiliza marcadores {} y admite especificaciones de formato posicionales, con nombre y completas.
  • string.Template utiliza marcadores $name y es seguro con entradas que no son de confianza.
  • safe_substitute deja en su lugar los marcadores desconocidos.
  • Prefiera las f-strings para el código habitual; utilice estas herramientas cuando las plantillas sean externas o no sean de confianza.
from string import Template
print(Template('Bye, $who').substitute(who='all'))
print('Done: {}'.format(True))
Gratis para empezar

Aprende Python con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
76
Lecciones
320

Preguntas frecuentes

¿La lección «Cadenas de plantilla y str.format» es gratis?

Sí — el texto completo de «Cadenas de plantilla y str.format» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Cadenas de plantilla y str.format»?

Conozca otras herramientas de formato Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Cadenas de plantilla y str.format»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Expresiones en f-strings
  2. Especificadores de formato
  3. Minilenguaje de formato
  4. Cadenas de plantilla y str.format
← Volver a Python Academy