Cadenas de plantilla y str.format
Conozca otras herramientas de formato
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.Templateutiliza marcadores$namey es seguro con entradas que no son de confianza.safe_substitutedeja 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))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
- Expresiones en f-strings
- Especificadores de formato
- Minilenguaje de formato
- Cadenas de plantilla y str.format