PyQuiz 18 – f-strings vs format() en Python
El reto
nombre = 'Python'
version = 3.13
a = f'{nombre} {version}'
b = '{} {}'.format(nombre, version)
print(a == b)
¿Cuál es el resultado?
- a) True
- b) False
- c) Error
Piensa tu respuesta antes de seguir leyendo…
Concepto: f-strings vs format()
Las f-strings (cadenas formateadas, disponibles desde Python 3.6) y el método .format() son dos formas de insertar valores en cadenas. Ambas producen exactamente el mismo texto final, aunque su sintaxis es diferente.
Con f-strings se usa el prefijo f antes de las comillas y se colocan las expresiones directamente entre llaves: f'{variable}'. Con .format() se usan llaves vacías {} como marcadores de posición y se pasan los valores como argumentos al método.
El resultado de ambas es una cadena de texto ordinaria (str). Como el contenido generado es idéntico, la comparación con == devuelve True. Las f-strings son más modernas, concisas y ligeramente más rápidas; .format() es compatible con Python 2 y útil cuando la plantilla está en una variable.
Paso a paso
nombre = 'Python'— cadena asignada.version = 3.13— número float asignado.a = f'{nombre} {version}'— la f-string evalúanombreyversiondirectamente. Resultado:'Python 3.13'.b = '{} {}'.format(nombre, version)—.format()sustituye los marcadores{}por'Python'y3.13en orden. Resultado:'Python 3.13'.print(a == b)— se comparan dos cadenas con el mismo contenido:'Python 3.13' == 'Python 3.13'. El resultado esTrue.
📥 Llévate el cheatsheet de Python (gratis)
PDF de 6 páginas con lo esencial: tipos, condicionales, bucles, estructuras de datos, funciones y los errores que más vas a cometer. Para tener al lado mientras programas.
Sin spam. Te apuntas a la lista, descargas el cheatsheet y recibes contenido de Python cada semana.
Solución
Respuesta correcta: A) True
Ambas formas producen el mismo string 'Python 3.13'. f-strings y format() son equivalentes aquí.
Sabías que…
Las f-strings permiten incluir expresiones completas, llamadas a funciones, formateo de números y hasta condiciones, todo dentro de las llaves:
precio = 19.9
stock = 3
# Expresión directa en la f-string
print(f'Precio con IVA: {precio * 1.21:.2f}€') # 'Precio con IVA: 24.08€'
# Llamada a función
nombre = 'python'
print(f'Lenguaje: {nombre.upper()}') # 'Lenguaje: PYTHON'
# Condicional inline
print(f'Stock: {"disponible" if stock > 0 else "agotado"}') # 'Stock: disponible'
# .format() con nombres (más legible para plantillas largas)
plantilla = 'Hola, {nombre}. Tienes {mensajes} mensajes.'
print(plantilla.format(nombre='Ana', mensajes=5))
Prueba tú mismo
Escribe una f-string que muestre el precio de un producto con exactamente 2 decimales y el símbolo € al final, dado precio = 9.5.
Más PyQuizzes en elpythonista.com/pyquizzes
Tutorial relacionado: Cadenas de caracteres en Python
¿Quieres aprender Python en orden, no a saltos?
Esto que has leído es solo una pieza. En El Pythonista lo verás todo encadenado: 11 módulos, 35+ lecciones, código revisado, ejercicios y un proyecto real (MovieTracker) que crece contigo desde la primera variable hasta el deploy a producción.
35+ lecciones · Proyecto real · Acceso de por vida · 14 días de garantía
