Pętla for

Python SELF PL
Poziom 4 , Lekcja 2
Dostępny

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

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
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:

  1. Zmienna w pętli (ta, która jest po słowie for) przypisuje sobie kolejną wartość z lista_wartości.
  2. Następnie wykonywany jest blok komend.

Kolejny przykład:

Przykład Wyjaśnienie

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for x in numbers:
    print(x)
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

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
                    
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

for price in [0.99, 2.75, 0.25]:
    print(price)
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

for data in [0.99, "apple", -1, True]:
    print(data)
                
Pętla wyświetli na ekranie ciągi znaków:
0.99
apple
-1
True
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION