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
Lussen
Er zijn twee soorten lussen in Python: for en while.
De "for" lus
For-lussen herhalen zich over een gegeven reeks. Hier is een voorbeeld:
primes = [2, 3, 5, 7]
for prime in primes:
print(prime)
For-lussen kunnen herhalen over een reeks getallen met behulp van de functies "range" en "xrange". Het verschil tussen range en xrange is dat de range functie een nieuwe lijst retourneert met getallen van dat gespecificeerde bereik, terwijl xrange een iterator retourneert, wat efficiënter is. (Python 3 gebruikt de range functie, die zich gedraagt als xrange). Let op dat de range functie nul-gebaseerd is.
# Drukt de getallen 0,1,2,3,4 af
for x in range(5):
print(x)
# Drukt 3,4,5 af
for x in range(3, 6):
print(x)
# Drukt 3,5,7 af
for x in range(3, 8, 2):
print(x)
"while" lussen
While-lussen herhalen zolang aan een bepaalde booleaanse voorwaarde wordt voldaan. Bijvoorbeeld:
# Drukt 0,1,2,3,4 af
count = 0
while count < 5:
print(count)
count += 1 # Dit is hetzelfde als count = count + 1
"break" en "continue" instructies
break wordt gebruikt om een for-lus of een while-lus te beëindigen, terwijl continue wordt gebruikt om het huidige blok over te slaan en terug te keren naar de "for" of "while" instructie. Een paar voorbeelden:
# Drukt 0,1,2,3,4 af
count = 0
while True:
print(count)
count += 1
if count >= 5:
break
# Drukt alleen oneven getallen af - 1,3,5,7,9
for x in range(10):
# Controleer of x even is
if x % 2 == 0:
continue
print(x)
Kunnen we een "else"-clausule gebruiken voor lussen?
In tegenstelling tot talen zoals C, CPP.. kunnen we else gebruiken voor lussen. Wanneer de lusvoorwaarde van een "for" of "while" instructie faalt, wordt het codegedeelte in "else" uitgevoerd. Als een break instructie binnen de for-lus wordt uitgevoerd, wordt het "else" gedeelte overgeslagen. Let op dat het "else" gedeelte wordt uitgevoerd, zelfs als er een continue instructie is.
Hier zijn een paar voorbeelden:
# Drukt 0,1,2,3,4 af en vervolgens "count value reached 5"
count=0
while(count<5):
print(count)
count +=1
else:
print("count value reached %d" %(count))
# Drukt 1,2,3,4 af
for i in range(1, 10):
if(i%5==0):
break
print(i)
else:
print("dit wordt niet afgedrukt omdat de for-lus is beëindigd vanwege break maar niet door een mislukking in de voorwaarde")
Oefening
Loop door en druk alle even getallen af uit de getallenlijst in dezelfde volgorde waarin ze worden ontvangen. Druk geen getallen af die na 237 in de reeks komen.
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!