For Loops w Pythonie: wszystko, co musisz wiedzieć
Opublikowany: 2022-08-18Ten samouczek nauczy Cię wszystkiego o używaniu pętli for w Pythonie z przykładami kodu.
W programowaniu pętle pomagają powtórzyć określony zestaw instrukcji. Użyjesz for pętli do określonych iteracji, gdy:
- wiesz, że będziesz pracować z sekwencją o skończonej liczbie elementów
- widzisz wcześniej liczbę powtórzeń
Ten samouczek nauczy Cię wszystkiego o pracy z pętlami for w Pythonie. Zaczniesz od nauki składni i prostych iteracji przy użyciu pętli for. Następnie dowiesz się o przetwarzaniu argumentów wiersza poleceń, używaniu instrukcji sterujących pętli i nie tylko.
Zacznijmy…
Składnia Pythona dla pętli

Ogólna składnia używania pętli for w Pythonie jest następująca:
for item in iterable: # do something on item statement_1 statement_2 . . . statement_nW powyższej składni:
- item jest zmienną zapętloną.
- iterable oznacza każdą iterację Pythona, taką jak listy, krotki i łańcuchy.
- instrukcja_1 do instrukcja_n oznaczają instrukcje w treści pętli.
Uwaga : Pamiętaj, aby dodać dwukropek ( : ) po nazwie iterowalnego i wciąć wszystkie instrukcje w treści pętli o cztery spacje.
Wspólne dla konstrukcji pętli w Pythonie

Podczas korzystania z pętli for :
- Możesz uzyskać dostęp do elementów bezpośrednio, korzystając ze składni omówionej w poprzedniej sekcji.
- Możesz użyć pętli for w połączeniu z wbudowanymi funkcjami Pythona, takimi jak
range()ienumerate().
Omówimy je w tej sekcji.
Używanie pętli for do uzyskiwania dostępu do elementów
Aby poprawić czytelność, powinieneś wybrać zapętloną zmienną wskazującą, co zawiera lista. Na przykład w poniższym przykładzie nums to lista liczb, których num jako zmiennej pętli. Zauważ, że for num in nums: jest intuicyjne i łatwe do odczytania.
nums = [4,5,9,1,3] for num in nums: print(num) # Output 4 5 9 1 3 Dodając jeszcze kilka przykładów, możesz użyć for fruit in fruits: i for student in students: podczas przeglądania odpowiednio fruits i listy students .
Używanie for Loop z funkcją range()
Jeśli chcesz uzyskać dostęp do elementu listy poprzez jego indeks, możesz użyć funkcji range() .
W Pythonie
range(start, stop, step)zwraca obiekt zakresu, przez który można przejść w pętli, aby uzyskać indeksy:start,start + stepi tak dalej, aż dostop, ale nie w tym.
for i in range(len(nums)): print(nums[i]) # Output 4 5 9 1 3 Możesz również użyć funkcji range() , aby wygenerować sekwencję liczb, przez którą przejdziesz w pętli. W poniższym przykładzie ustawiamy opcjonalny parametr step na 2. Tak więc otrzymujemy liczby od 10 do, ale bez 20, w krokach po 2.
for i in range(10,20,2): print(i) # Output 10 12 14 16 18Używanie for Loop z funkcją enumerate()
Jeśli chcesz przejść przez iterację i jednocześnie uzyskać dostęp do elementów i ich indeksów, możesz użyć funkcji enumerate().
Oto przykład.
for idx, num in enumerate(nums): print(f"{idx}:{num}") # Output 0:4 1:5 2:9 3:1 4:3 
Jak czytać elementy z list za pomocą pętli for w Pythonie?
Aby przejść przez listy Pythona za pomocą pętli for, możesz użyć ogólnej składni z poprzedniej sekcji.
W poniższym przykładzie nums jest iterowalną, a num jest zmienną zapętloną.
nums = [4,5,9,1,3] for num in nums: print(f"{num} times 3 is {num*3}") # action on each num # Output 4 times 3 is 12 5 times 3 is 15 9 times 3 is 27 1 times 3 is 3 3 times 3 is 9Jak zapętlić łańcuchy za pomocą pętli for w Pythonie?
Łańcuchy Pythona są iterowalne i możesz wykonywać pętle, indeksowanie, cięcie na plasterki i wiele więcej.
Uwaga : Python nie ma wbudowanego typu danych znakowych. Możesz więc traktować znak jako ciąg o długości jeden.
my_string = "Code" for char in my_string: print(char) # Output C o d eJak zapętlić tablice za pomocą pętli for w Pythonie?

Możesz przechodzić przez tablice za pomocą pętli i zagnieżdżać pętle.
W poniższym fragmencie kodu array1 to zagnieżdżona lista zawierająca mniejsze listy jako jej elementy. Tak więc pętla przez array1 daje każdy wiersz, jak pokazano poniżej.
array1 = [[2,3],[7,8]] for row in array1: print(row) # Output [2, 3] [7, 8] Aby uzyskać dostęp do poszczególnych elementów w każdym rzędzie, możesz użyć innej pętli for .
array1 = [[2,3],[7,8]] for row in array1: for elt in row: print(elt)W powyższej komórce kodu:
- Zewnętrzna pętla for pomaga indeksować wiersze.
- Wewnętrzna pętla for umożliwia dopasowanie elementów w każdym rzędzie.
Oto odpowiedni wynik.
Output 2 3 7 8Jak czytać argumenty wiersza poleceń za pomocą pętli?

Jako programista powinieneś swobodnie uruchamiać skrypty Pythona z wiersza poleceń i używać argumentów wiersza poleceń do interakcji ze skryptem.
Możesz użyć wbudowanych modułów Pythona, takich jak sys i argparse, aby analizować i odczytywać argumenty wiersza poleceń.
W tej sekcji omówimy, jak używać modułu sys i używać pętli for — do przechodzenia przez listę argumentów wiersza poleceń.
W module sys sys.argv jest listą argumentów wiersza poleceń, które przekazujesz. Możesz więc przechodzić przez sys.argv w taki sam sposób, w jaki przechodzisz przez dowolną listę Pythona.
# main.py import sys for arg in sys.argv: print(arg)Możesz teraz uruchomić program z wiersza poleceń, jak pokazano poniżej.
$ python main.py Hello Python3 main.py Hello Python3 Domyślnie nazwa modułu jest pierwszym argumentem i ma indeks zero w sys.argv .
Jeśli chcesz uzyskać dostęp do indeksów i odpowiadających im argumentów, możesz użyć funkcji range() .
# main.py import sys for i in range(len(sys.argv)): print(f"arg{i} is {sys.argv[i]}")️ Następnie ponownie uruchom main.py.
$ python main.py Hello Python3 arg0 is main.py arg1 is Hello arg2 is Python3Załóżmy, że chcesz przeanalizować i przetworzyć argumenty inne niż nazwa modułu. Możesz ustawić wartość początkową na 1, jak w komórce kodu poniżej.

# main.py import sys for i in range(1,len(sys.argv)): print(f"arg{i} is {sys.argv[i]}") $ python main.py Hello Python3 arg1 is Hello arg2 is Python3 
Podsumowując, plik main.py zawiera następujący kod.
# main.py import sys print("\nPrinting all command-line arguments...") for arg in sys.argv: print(arg) print("\nPrinting all command-line arguments with index...") for i in range(len(sys.argv)): print(f"arg{i} is {sys.argv[i]}") print("\nPrinting command-line arguments except arg0: module_name...") for i in range(1,len(sys.argv)): print(f"arg{i} is {sys.argv[i]}")Oto dane wyjściowe po uruchomieniu modułu.
$ python main.py Hello Python3 Printing all command-line arguments... main.py Hello Python3 Printing all command-line arguments with index... arg0 is main.py arg1 is Hello arg2 is Python3 Printing command-line arguments except arg0: module_name... arg1 is Hello arg2 is Python3Jak korzystać z instrukcji break Inside for Loop

Podobnie jak inne języki programowania, Python obsługuje również użycie instrukcji sterujących pętli break and continue . Te instrukcje mogą pomóc w zmianie przepływu sterowania w pętlach, w zależności od pewnych warunków. Zobaczmy, jak ich używać w pętli for.
Instrukcja break the może być użyta do wyjścia z pętli, gdy określony warunek jest True .
Chcemy napisać program, który wykona następujące czynności:
- Fix
k, liczba wejść. - Użyj pętli
for, aby wczytać dane wejściowe użytkownika — jedną cyfrę na raz i zsumować liczby nieujemne (większe lub równe zero). - Ten proces powinien trwać tak długo, jak użytkownik wprowadzi liczby nieujemne.
- Gdy użytkownik wprowadzi liczbę ujemną, wyjdź z pętli i wydrukuj sumę.
Oto kod, który wykonuje powyższe zadanie.
k= 5 sum = 0 for i in range(k): num = int(input("\nEnter a number: ")) if num<0: break # exit loop when num < 0 sum += num print(sum)Jeśli użytkownik wprowadzi liczbę mniejszą od zera, formant przerywa pętlę for do pierwszej instrukcji po pętli.
Enter a number: 2 Enter a number: 3 Enter a number: 5 Enter a number: -1 10Jak korzystać dalej Oświadczenie Inside for Loop
Instrukcja continue może służyć do pomijania pewnych iteracji w zależności od konkretnego warunku.
Użyjmy tych samych przykładów w poprzedniej sekcji.
- Wczytaj dane wprowadzone przez użytkownika i oblicz sumę liczb nieujemnych.
- Jeśli użytkownik wprowadzi liczbę ujemną, pomiń tę iterację, przejdź do następnej iteracji i wczytaj następną liczbę.
k = 5 sum = 0 for i in range(k): num = int(input("\nEnter a number: ")) if num<0: continue sum += num print(sum)Oto przykładowe wyjście.
Enter a number: 2 Enter a number: 3 Enter a number: 5 Enter a number: -1 Enter a number: 3 13Czwarta liczba to -1, która jest ujemna. Jednak tym razem pętla for trwa, dopóki nie osiągniemy określonej liczby wejść, i ignoruje wejścia ujemne. Zasadniczo zwraca sumę wszystkich liczb nieujemnych z k liczb wejściowych.
Czy w Pythonie można wpaść w nieskończoną pętlę?

We wszystkich przykładach i przypadkach użycia, które omówiliśmy do tej pory, nigdy nie napotkaliśmy problemu nieskończonej pętli for. Ale czy możemy mieć nieskończoną pętlę for w Pythonie?
Rozważmy następującą funkcję double() .
def double(x = 1): return x*2- Gdy wywołujesz funkcję
double()bez określenia wartościx, używana jest wartość domyślna 1 . - Gdy określasz wartość
xw wywołaniu funkcji, ta wartość jest używana.
double() # Returns: 2 double(20) # Returns: 40 W Pythonie funkcja iter() zwraca obiekt iteratora. Możesz użyć next(iter-obj) , aby przejść przez sekwencję i uzyskać dostęp do kolejnych elementów.
– Rozważ obiekt wywoływalny i wartość, sentinel .
–
iter(callable-object, sentinel)może służyć do wykonywania iteracji, aż wartość zwracana zcallable-objectbędzie równasentinel.
Czy widzisz, dlaczego w tym przypadku możemy mieć nieskończoną pętlę for?

Cóż, masz obiekt callable-object i wartość sentinel . Jeśli wartość zwracana z wywołania nigdy nie jest równa wartości wartowniczej, pętla trwa w nieskończoność!
Użyjmy powyższej funkcji double jako wywoływalnej i ustawmy wartość sentinel na 0.
Uwaga : Podaj nazwę funkcji double , a nie wywołania funkcji double() .
Ponieważ wartość zwracana z funkcji double zawsze wynosi 2 i nigdy nie jest równa 0, mamy nieskończoną pętlę!
️ Spróbuj uruchomić następującą komórkę kodu. Pętla for jest nieskończona i będziesz musiał wymusić zatrzymanie programu.
for _ in iter(double,0): print("Running...") 
Python For Loops: Ćwicz pytania
#1 . Użyj pętli for, aby wydrukować wszystkie liczby parzyste z zakresu od 0 do 20.
Podpowiedź : Użyj funkcji range() z poprawną wartością step .
#2 . Wydrukuj wszystkie liczby parzyste od 20 do 0.
Podpowiedź : Użyj wartości ujemnej dla parametru step w funkcji range() .
#3 . Utwórz trójwymiarową tablicę NumPy.
Wskazówka : Użyj pętli for i pętli for zagnieżdżonych w razie potrzeby, aby uzyskać dostęp do wierszy i poszczególnych wpisów w tablicy.
Zawijanie
Oto podsumowanie tego, czego nauczyłeś się w tym samouczku.
- Składnia do używania pętli for Pythona wraz z funkcjami range() i enumerate()
- Używanie pętli for do przeglądania list, tablic i łańcuchów oraz wczytywania argumentów wiersza poleceń
- Korzystanie z instrukcji sterujących pętli: przerwanie , aby wyrwać się z pętli i instrukcja continue , aby pominąć pewne iteracje — na podstawie warunków — wewnątrz pętli for
- Zrozumienie możliwości nieskończonych pętli for w Pythonie
Następnie dowiedz się, jak używać metody split() w Pythonie.
