PyQuiz 18 - f-strings vs format() en Python | Quiz interactivo

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

  1. nombre = 'Python' — cadena asignada.
  2. version = 3.13 — número float asignado.
  3. a = f'{nombre} {version}' — la f-string evalúa nombre y version directamente. Resultado: 'Python 3.13'.
  4. b = '{} {}'.format(nombre, version).format() sustituye los marcadores {} por 'Python' y 3.13 en orden. Resultado: 'Python 3.13'.
  5. print(a == b) — se comparan dos cadenas con el mismo contenido: 'Python 3.13' == 'Python 3.13'. El resultado es True.

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

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicar un comentario