streakode

Python 3.14

Ejercicios de Python sobre Bucles

5 ejercicios de Bucles en Python. Piensa la respuesta antes de abrirla: la explicación dice por qué las demás opciones fallan.

  1. 1 · Elige la respuesta · nivel 1

    ¿Qué imprime este código?

    for i, c in enumerate("ab", start=1):    print(i, c)
    • A1 a 2 b
    • B0 a 1 b
    • Ca 1 b 2
    • D(1, 'a') (2, 'b')
    Ver la respuesta

    Respuesta: A. 1 a 2 b

    enumerate() devuelve pares (índice, elemento). Con start=1 el índice empieza en 1, y el for desempaqueta cada par en i y c.

  2. 2 · Completa el hueco · nivel 1

    Completa para imprimir los números 0, 1 y 2.

    for i ___ ___(3):    print(i)
    • in
    • range
    • of
    • len
    Ver la respuesta

    Respuesta: in · range

    for i in range(3):    print(i)

    for ... in recorre una secuencia, y range(3) genera 0, 1 y 2: empieza en 0 y no incluye el 3.

  3. 3 · Ordena las líneas · nivel 1

    Ordena el código para imprimir los números pares del 1 al 6.

    • print(n)
    • if n % 2 = 0:
    • if n % 2 == 0:
    • for n in range(1, 7):
    Ver la respuesta

    El orden correcto:

    for n in range(1, 7):    if n % 2 == 0:        print(n)

    Sobran: if n % 2 = 0:

    range(1, 7) llega hasta el 6 porque el final no se incluye. Para comparar se usa ==; un solo = es una asignación y da SyntaxError dentro de un if.

  4. 4 · Ordena las líneas · nivel 1

    Ordena el código para imprimir 3, 2, 1 y después ¡Ya!

    • print(n)
    • for n in [3, 2, 1]:
    • print("¡Ya!")
    Ver la respuesta

    El orden correcto:

    for n in [3, 2, 1]:    print(n)print("¡Ya!")

    La línea indentada va dentro del bucle y se repite. print("¡Ya!") no tiene sangría, así que se ejecuta una sola vez, al acabar el bucle.

  5. 5 · Encuentra el fallo · nivel 2

    total([5, 1, 2]) devuelve 3 en vez de 8. ¿Qué línea tiene el fallo?

    1def total(values):2    result = 03    for i in range(1, len(values)):4        result += values[i]5    return result6 7print(total([5, 1, 2]))
    Ver la respuesta

    El fallo está en la línea 3: for i in range(1, len(values)): Se arregla con for i in range(len(values)):.

    Los índices empiezan en 0 y range(1, ...) se salta el primer elemento. Mejor aún, sin índices: for value in values, o directamente sum(values).

Más temas de Python

Ver toda la ruta de Python