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

Pętle


Istnieją dwa rodzaje pętli w Pythonie: for i while.

Pętla "for"

Pętle for iterują po podanej sekwencji. Oto przykład:

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

Pętle for mogą iterować po sekwencji liczb przy użyciu funkcji "range" i "xrange". Różnica między range a xrange polega na tym, że funkcja range zwraca nową listę z liczbami z tego zakresu, podczas gdy xrange zwraca iterator, co jest bardziej efektywne. (Python 3 używa funkcji range, która działa jak xrange). Zwróć uwagę, że funkcja range zaczyna od zera.

# Wypisuje liczby 0,1,2,3,4
for x in range(5):
    print(x)

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

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

Pętle "while"

Pętle while powtarzają się, dopóki spełniony jest określony warunek logiczny. Na przykład:

# Wypisuje 0,1,2,3,4

count = 0
while count < 5:
    print(count)
    count += 1  # To samo co count = count + 1

Instrukcje "break" i "continue"

break służy do wychodzenia z pętli for lub while, natomiast continue służy do pomijania bieżącego bloku i powrotu do instrukcji "for" lub "while". Kilka przykładów:

# Wypisuje 0,1,2,3,4

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

# Wypisuje tylko liczby nieparzyste - 1,3,5,7,9
for x in range(10):
    # Sprawdza, czy x jest parzyste
    if x % 2 == 0:
        continue
    print(x)

Czy możemy używać klauzuli "else" dla pętli?

W przeciwieństwie do języków takich jak C, CPP.. możemy używać else dla pętli. Kiedy warunek pętli instrukcji "for" lub "while" zawiedzie, wtedy wykonywany jest kod w części "else". Jeśli wewnątrz pętli for wykonana zostanie instrukcja break, to część "else" zostanie pominięta. Zwróć uwagę, że część "else" jest wykonywana nawet, jeśli istnieje instrukcja continue.

Oto kilka przykładów:

# Wypisuje 0,1,2,3,4, a następnie wypisuje "count value reached 5"

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

# Wypisuje 1,2,3,4
for i in range(1, 10):
    if(i%5==0):
        break
    print(i)
else:
    print("this is not printed because for loop is terminated because of break but not due to fail in condition")

Ćwiczenie

Przejdź przez listę numbers i wypisz wszystkie liczby parzyste w kolejności, w jakiej się pojawiają. Nie wypisuj żadnych liczb, które pojawiają się po liczbie 237 w sekwencji.

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