Python for Loop

W tym artykule nauczysz się iterować po sekwencji elementów przy użyciu różnych odmian pętli for.

Wideo: Python for Loop

Co to jest pętla for w Pythonie?

Pętla for w Pythonie służy do iteracji po sekwencji (lista, krotka, łańcuch) lub innych iterowalnych obiektach. Iterowanie po sekwencji nazywa się przechodzeniem.

Składnia pętli for

 for val w sekwencji: Body of for

Tutaj valjest zmienna, która przyjmuje wartość elementu wewnątrz sekwencji w każdej iteracji.

Pętla trwa, aż dojdziemy do ostatniej pozycji w sekwencji. Ciało pętli for jest oddzielone od reszty kodu za pomocą wcięć.

Schemat blokowy pętli for

Schemat blokowy pętli for w Pythonie

Przykład: Python for Loop

 # Program to find the sum of all numbers stored in a list # List of numbers numbers = (6, 5, 3, 8, 4, 2, 5, 4, 11) # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print("The sum is", sum) 

Po uruchomieniu programu wynik będzie następujący:

 Suma wynosi 48

Funkcja range ()

Możemy wygenerować ciąg liczb za pomocą range()funkcji. range(10)wygeneruje liczby od 0 do 9 (10 liczb).

Możemy również zdefiniować rozmiar początku, końca i kroku jako range(start, stop,step_size). step_size domyślnie wynosi 1, jeśli nie zostanie podany.

rangePrzedmiotem jest „leniwy” w pewnym sensie, ponieważ nie generuje każdy numer, że „zawiera”, kiedy go utworzyć. Jednak nie jest to iterator ponieważ wspiera in, lena __getitem__operacje.

Ta funkcja nie przechowuje wszystkich wartości w pamięci; byłoby to nieefektywne. Zapamiętuje więc początek, koniec, wielkość kroku i generuje kolejną liczbę na bieżąco.

Aby wymusić na tej funkcji wypisanie wszystkich elementów, możemy użyć funkcji list().

Poniższy przykład wyjaśni to.

 print(range(10)) print(list(range(10))) print(list(range(2, 8))) print(list(range(2, 20, 3)))

Wynik

 zakres (0, 10) (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) (2, 3, 4, 5, 6, 7) (2, 5, 8, 11, 14 17)

Możemy użyć range()funkcji w forpętlach, aby iterować przez sekwencję liczb. Można go łączyć z len()funkcją, aby iterować sekwencję przy użyciu indeksowania. Oto przykład.

 # Program to iterate through a list using indexing genre = ('pop', 'rock', 'jazz') # iterate over the list using index for i in range(len(genre)): print("I like", genre(i))

Wynik

 Lubię pop lubię rocka lubię jazz

for loop with else

forPętla może mieć opcjonalnie elseelementu oraz. elseCzęść jest wykonywana wtedy, gdy elementy w kolejności stosowane w do odciągów pętlowych.

Słowa breakkluczowego można użyć do zatrzymania pętli for. W takich przypadkach inna część jest ignorowana.

W związku z tym część else pętli for jest uruchamiana, jeśli nie nastąpi przerwa.

Oto przykład ilustrujący to.

 digits = (0, 1, 5) for i in digits: print(i) else: print("No items left.")

Po uruchomieniu programu wynik będzie następujący:

 0 1 5 Brak elementów.

Tutaj pętla for drukuje elementy listy, aż pętla się wyczerpie. Kiedy pętla for się wyczerpie, wykonuje blok kodu w elsei drukuje Brak elementów.

Tej for… elseinstrukcji można użyć ze breaksłowem kluczowym do uruchomienia elsebloku tylko wtedy, gdy breaksłowo kluczowe nie zostało wykonane. Weźmy przykład:

 # program to display student's marks from record student_name = 'Soyuj' marks = ('James': 90, 'Jules': 55, 'Arthur': 77) for student in marks: if student == student_name: print(marks(student)) break else: print('No entry with that name found.')

Wynik

 Nie znaleziono wpisu o tej nazwie.

Interesujące artykuły...