PyQuiz 43 - Multiplicar strings en Python | Quiz interactivo

PyQuiz 43 – Multiplicar strings en Python

El reto

resultado = 'Py' + 'thon' * 2
print(resultado)

¿Cuál es el resultado?

  • a) 'PythonPython'
  • b) 'Pythonthon'
  • c) 'Pythonthon2'

Piensa tu respuesta antes de seguir leyendo…


Concepto: Multiplicar strings

En Python, el operador * aplicado a strings realiza repetición: 'ab' * 3 produce 'ababab'. La clave de este quiz está en la precedencia de operadores: * tiene mayor precedencia que +, igual que en la aritmética normal.

Por tanto, en 'Py' + 'thon' * 2, primero se evalúa 'thon' * 2 = 'thonthon' y después se concatena: 'Py' + 'thonthon' = 'Pythonthon'. Si quisieras repetir el resultado de la concatenación, tendrías que usar paréntesis: ('Py' + 'thon') * 2 = 'PythonPython'.

print('Py' + 'thon' * 2)      # 'Pythonthon'
print(('Py' + 'thon') * 2)   # 'PythonPython'
print('=-' * 10)              # '=-=-=-=-=-=-=-=-=-=-'
print('Hola ' * 3)           # 'Hola Hola Hola '

Paso a paso

  1. 'Py' + 'thon' * 2 — Python evalúa según precedencia. * tiene mayor prioridad que +.
  2. Primero: 'thon' * 2'thon' repetido 2 veces = 'thonthon'.
  3. Después: 'Py' + 'thonthon' → concatenación = 'Pythonthon'.
  4. resultado = 'Pythonthon' — Se asigna a la variable.
  5. print(resultado) — Se imprime 'Pythonthon'.

📥 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: B) 'Pythonthon'

* tiene más prioridad que +. 'thon' * 2 = 'thonthon', luego 'Py' + 'thonthon' = 'Pythonthon'.

Sabías que…

La repetición con * funciona también con listas y tuplas, y combinada con join es muy útil para crear separadores o plantillas:

# Repetición de listas
print([0] * 5)         # [0, 0, 0, 0, 0]
print([1, 2] * 3)      # [1, 2, 1, 2, 1, 2]

# Separadores con strings
separador = '-' * 40
print(separador)       # ----------------------------------------

# Tabla ASCII con precedencia explícita
for i in range(1, 4):
    print(str(i) + '. ' + '*' * i)
# 1. *
# 2. **
# 3. ***

Prueba tú mismo

¿Qué imprime print('a' * 2 + 'b' * 3)? ¿Y print(('a' + 'b') * 2 + 'c')?


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, 37+ horas de vídeo, 734 actividades y un proyecto real (MovieTracker) que crece contigo desde la primera variable hasta el deploy a producción.

Ver el curso completo →

37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía

Compartir