Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Bucles
Hay dos tipos de bucles en Python, for y while.
El bucle "for"
Los bucles for iteran sobre una secuencia dada. Aquí hay un ejemplo:
primes = [2, 3, 5, 7]
for prime in primes:
print(prime)
Los bucles for pueden iterar sobre una secuencia de números usando las funciones "range" y "xrange". La diferencia entre range y xrange es que la función range devuelve una nueva lista con números de ese rango específico, mientras que xrange devuelve un iterador, lo cual es más eficiente. (Python 3 usa la función range, que actúa como xrange). Ten en cuenta que la función range es basada en cero.
# Imprime los números 0,1,2,3,4
for x in range(5):
print(x)
# Imprime 3,4,5
for x in range(3, 6):
print(x)
# Imprime 3,5,7
for x in range(3, 8, 2):
print(x)
Bucles "while"
Los bucles while se repiten mientras se cumpla una cierta condición booleana. Por ejemplo:
# Imprime 0,1,2,3,4
count = 0
while count < 5:
print(count)
count += 1 # Esto es lo mismo que count = count + 1
Sentencias "break" y "continue"
break se utiliza para salir de un bucle for o while, mientras que continue se utiliza para saltar el bloque actual y volver a la sentencia "for" o "while". Algunos ejemplos:
# Imprime 0,1,2,3,4
count = 0
while True:
print(count)
count += 1
if count >= 5:
break
# Imprime solo números impares - 1,3,5,7,9
for x in range(10):
# Verificar si x es par
if x % 2 == 0:
continue
print(x)
¿Podemos usar la cláusula "else" en bucles?
A diferencia de lenguajes como C, CPP... podemos usar else en bucles. Cuando la condición del bucle de la sentencia "for" o "while" falla, entonces se ejecuta la parte del código en "else". Si se ejecuta una sentencia break dentro del bucle for, entonces se omite la parte "else". Ten en cuenta que la parte "else" se ejecuta incluso si hay una sentencia continue.
Aquí hay algunos ejemplos:
# Imprime 0,1,2,3,4 y luego imprime "el valor de count alcanzó 5"
count=0
while(count<5):
print(count)
count +=1
else:
print("el valor de count alcanzó %d" %(count))
# Imprime 1,2,3,4
for i in range(1, 10):
if(i%5==0):
break
print(i)
else:
print("esto no se imprime porque el bucle for se termina debido a un break pero no por fallar en la condición")
Ejercicio
Recorre e imprime todos los números pares de la lista de números en el mismo orden en que se reciben. No imprimas ningún número que venga después de 237 en la secuencia.
numbers = [
951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544,
615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941,
386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345,
399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217,
815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717,
958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470,
743, 527
]
# your code goes here
for number in numbers:
numbers = [
951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544,
615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941,
386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345,
399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217,
815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717,
958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470,
743, 527
]
# your code goes here
for number in numbers:
if number == 237:
break
if number % 2 == 1:
continue
print(number)
test_object("number", undefined_msg="Define a object `number` using the code from the tutorial to print just the desired numbers from the exercise description.",incorrect_msg="Your `number` object is not correct, You should use an `if` statement and a `break` statement to accomplish your goal.")
success_msg("Great work!")
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!