8.1 Pętla for
To, że można wykonywać grupę poleceń na podstawie określonego warunku, jest super. A co, jeśli chcę wykonać jakieś działanie 100 razy? Jak to zrobić?
Do tego w języku Python są pętle. I do naszego zadania idealnie pasuje pętla for
. Ogólny wygląd operatora for
jest taki:
for zmienna in lista_wartości:
komenda1
komenda1
komendaN
Gdzie lista_wartości to pewien zestaw wartości: lista, ciąg znaków, słownik (o nich później).
Zmienna kolejno przyjmuje wartości z lista_wartości i dla każdej z nich wykonywany jest blok poleceń.
Przykład:
Przykład | Wyjaśnienie |
---|---|
|
1. Zmienna fruit przypisuje sobie wartość "apple" i wykonywana jest komenda print(fruit ) 2. Zmienna fruit przypisuje sobie wartość "banana" i wykonywana jest komenda print(fruit ) 3. Zmienna fruit przypisuje sobie wartość "cherry" i wykonywana jest komenda print(fruit ) |
Tak działa pętla:
Jeśli w liście po słowie in
będzie 10 wartości, to blok komend zostanie wykonany 10 razy.
Dla każdej wartości z lista_wartości dzieją się dwie rzeczy:
- Zmienna w pętli (ta, która jest po słowie
for
) przypisuje sobie kolejną wartość z lista_wartości. - Następnie wykonywany jest blok komend.
Kolejny przykład:
Przykład | Wyjaśnienie |
---|---|
|
Pętla wyświetli na ekranie liczby: 1 2 3 4 5 6 7 8 9 10 |
8.2 Określenie zakresu — range
W ostatnim przykładzie widziałeś, że wyświetlenie 10 liczb jest bardzo proste. Ale co, jeśli chcemy wykonać pętlę 100 razy? Lub 1000?
Oczywiście, na to jest rozwiązanie. W języku Python jest specjalna funkcja range()
do generowania sekwencji liczb, która w połączeniu z pętlą for
czyni je potężnym narzędziem do zarządzania powtarzającymi się zadaniami.
Funkcja range()
może być używana na kilka sposobów, w zależności od liczby argumentów przekazywanych do niej.
Podstawy zastosowania range()
:
Jeden argument: range(n)
generuje sekwencję od 0 do n-1. To jest przydatne, gdy trzeba wykonać działanie określoną liczbę razy.
for i in range(5):
print(i) # Wyświetli liczby od 0 do 4
Dwa argumenty: range(start, stop)
generuje sekwencję od start
do stop-1
. To jest przydatne do rozpoczęcia iteracji od określonej liczby.
for i in range(1, 6):
print(i) # Wyświetli liczby od 1 do 5
Trzy argumenty: range(start, stop, step)
dodaje trzeci argument step
, który określa krok między liczbami w sekwencji.
for i in range(0, 10, 2):
print(i) # Wyświetli parzyste liczby od 0 do 8
Odwrócone pętle: range()
może generować liczby w odwrotnej kolejności, co pozwala na wykonywanie iteracji wstecz.
for i in range(10, 0, -1):
print(i) # Wyświetli liczby od 10 do 1
Funkcja range()
w połączeniu z pętlą for
zapewnia elastyczne narzędzie do kontroli iteracji w Pythonie. Zrozumienie jej możliwości pomaga tworzyć bardziej efektywne i zrozumiałe pętle, które są nieodłączną częścią każdej aplikacji.
8.3 Pętla po liście
Jeśli chcesz wykonać grupę działań na różnych wartościach, funkcja range()
Ci nie odpowiada, zawsze możesz połączyć te wartości w listę za pomocą nawiasów kwadratowych. Ogólny wygląd tej operacji wygląda tak:
for zmienna in [val1, val2, …, valN]:
komenda1
komenda1
komendaN
Po prostu wymieniasz wartości oddzielone przecinkiem, a pętla wykona się dla każdej z nich, a zmienna kolejno przyjmie każdą wartość. Przykład:
Przykład | Wyjaśnienie |
---|---|
|
Pętla wyświetli na ekranie ciągi znaków: apple banana cherry |
Możesz wskazać w liście liczby, nawet bezpośrednio w pętli po słowie in
:
Przykład | Wyjaśnienie |
---|---|
|
Pętla wyświetli na ekranie liczby: 0.99 2.75 0.25 |
W liście można w ogóle wymienić obiekty dowolnego typu:
Przykład | Wyjaśnienie |
---|---|
|
Pętla wyświetli na ekranie ciągi znaków: 0.99 apple -1 True |
GO TO FULL VERSION