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

Smyčky


Existují dva typy cyklů v Pythonu: for a while.

Cyklus "for"

Cyklus for iteruje přes danou sekvenci. Zde je příklad:

primes = [2, 3, 5, 7]
for prime in primes:
    print(prime)

Cyklus for může iterovat přes sekvenci čísel pomocí funkcí "range" a "xrange". Rozdíl mezi range a xrange je, že funkce range vrací nový seznam s čísly v daném rozsahu, zatímco xrange vrátí iterátor, což je efektivnější. (Python 3 používá funkci range, která se chová jako xrange). Všimněte si, že funkce range je založena na nule.

# Vytiskne čísla 0,1,2,3,4
for x in range(5):
    print(x)

# Vytiskne 3,4,5
for x in range(3, 6):
    print(x)

# Vytiskne 3,5,7
for x in range(3, 8, 2):
    print(x)

Cyklus "while"

Cyklus while se opakuje, dokud je splněna určitá logická podmínka. Například:

# Vytiskne 0,1,2,3,4

count = 0
while count < 5:
    print(count)
    count += 1  # Toto je stejné jako count = count + 1

Příkazy "break" a "continue"

break se používá k ukončení cyklu for nebo while, zatímco continue se používá ke skoku na začátek aktuálního bloku a k návratu k příkazu "for" nebo "while". Několik příkladů:

# Vytiskne 0,1,2,3,4

count = 0
while True:
    print(count)
    count += 1
    if count >= 5:
        break

# Vytiskne pouze lichá čísla - 1,3,5,7,9
for x in range(10):
    # Zjištění, zda je x sudé
    if x % 2 == 0:
        continue
    print(x)

Můžeme použít "else" klauzuli pro cykly?

Na rozdíl od jazyků jako C, CPP.. můžeme použít else pro cykly. Když podmínka cyklu "for" nebo "while" selže, pak se provede kód v části "else". Pokud je uvnitř cyklu for vykonán příkaz break, část "else" je přeskočena. Všimněte si, že část "else" se provede i v případě, že je zde příkaz continue.

Zde je několik příkladů:

# Vytiskne 0,1,2,3,4 a potom vytiskne "count value reached 5"

count=0
while(count<5):
    print(count)
    count +=1
else:
    print("count value reached %d" %(count))

# Vytiskne 1,2,3,4
for i in range(1, 10):
    if(i%5==0):
        break
    print(i)
else:
    print("toto není vytištěno, protože cyklus for je ukončen kvůli break a ne kvůli selhání podmínky")

Cvičení

Projděte a vytiskněte všechna sudá čísla ze seznamu čísel ve stejném pořadí, v jakém byla přijata. Nevytištěte žádná čísla, která následují po 237 v sekvenci.

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!

Previous Tutorial Next Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy