Zawartość
- Pętla For
- Iterowanie po blokach konstrukcyjnych sekwencji
- Iterowanie po sekwencji przy użyciu indeksu i zakresu
- Pętla While
- Pętle zagnieżdżone
- Instrukcje sterowania pętlą
Jestem programistą i interesuję się analizą danych i statystykami.
Konstrukcje pętlowe w dowolnym języku programowania służą do powtarzania sekwencji kroków przez określoną liczbę razy. Python dopuszcza dwa typy pętli: pętlę for i pętlę while. Możliwe jest również dodanie pętli do innej pętli i utworzenie zagnieżdżonej pętli w Pythonie.
Pętla For
Podczas iteracji po krotka lub lista, możemy albo użyć indeksów i napisać tradycyjną pętlę for, która jest podobna do tej, którą można znaleźć w C / C ++ lub napisać pętlę for-each-sequence podobną do tej w Javie. Dowiedzmy się więcej o pętlach for.
Iterowanie po blokach konstrukcyjnych sekwencji
#! / usr / bin / python3 print ("Drukowanie liter łańcucha w każdym wierszu ...") for cur w 'Hello World!': print (bież) rhymes = ['Mary', 'Had', 'A' , 'Little', 'Lamb'] print ("Drukowanie słów w rymie w każdym wierszu ...") dla słowa w rymach: print (word) print ("... Reached the end ...")
W pierwszej pętli for pobieramy ciąg znaków „HelloWorld!” I wykonujemy iteracje po nim za pomocą iteracji zmienna. Ogólnie składnię tego typu pętli for można wyrazić jako:
for iter_var w kolejności: # wkracza do pętli.
Pierwsze dwie pętle for pokazują, w jaki sposób litery w ciągu i słowa na liście reprezentującej frazę są traktowane jako indywidualne elementy składowe sekwencji.
Wynik dla powyższego programu będzie wyglądał następująco:
Drukowanie liter w każdym wierszu ...
H.
mi
l
l
o
W
o
r
l
re
!
Drukowanie słów w rymie w każdym wierszu ...
Mary
Miał
ZA
Mało
Baranek ... dotarł do końca ...
Ten typ pętli for można zastosować również w przypadku krotki lub słownika. Poniższy kod pokazuje, jak iterować po słowniku, biorąc pod uwagę klucze lub pary klucz-wartość jako bloki konstrukcyjne sekwencji.
#! / usr / bin / python3 print ("Iteracja po słowniku") studentDict = {'firstName': 'john', 'lastName': 'Smith', 'age': 29, 'studentId': 415312} print ( "Iterowanie przy użyciu samego klucza w pętli for") dla klucza w studentDict: print ("key:", key, ", value:", studentDict [key]) print ("Iterating using key and value") for foo, bar in studentDict.items (): print ("key:", foo, ", value:", bar) print ("... Osiągnięto koniec ...")
W pierwszej pętli for iterujemy po słowniku używając samego klucza. W drugiej pętli for zarówno klucz, jak i wartość są używane jako zmienne iteracyjne do iteracji po elementach słownika o nazwie „studentDict”. Zauważ, że nie jest obowiązkowe podawanie nazwy jako „klucz” i „wartość” zawsze w pętli for i aby to zademonstrować, użyliśmy foo i bar.
Dane wyjściowe dla powyższego kodu będą wyglądać następująco:
Iterowanie po słowniku
Iterowanie przy użyciu samego klucza w pętli for
klucz: firstName, wartość: jan
klucz: studentId, wartość: 415312
klucz: lastName, wartość: Smith
klucz: wiek, wartość: 29
Iterowanie przy użyciu klucza i wartości
klucz: firstName, wartość: jan
klucz: studentId, wartość: 415312
klucz: lastName, wartość: Smith
klucz: wiek, wartość: 29
Iterowanie po sekwencji przy użyciu indeksu i zakresu
Jest to podobne do pętli for, które widzimy w językach takich jak C / C ++ / Java itp. Dostęp do elementów danej sekwencji uzyskuje się za pomocą indeksu.
Funkcja range () służy do zwracania zakresu wartości, począwszy od zera jako dolnej granicy, do wartości wymienionej jako parametr w górnej granicy. Możliwe jest uzyskanie podzakresu, podając dolną granicę i górną granicę.
Na przykład range (2,6) zwraca 2, 3, 4, 5, podczas gdy range (3) zwraca 0, 1, 2. W poniższym kodzie używamy range (len (rymy)), aby skierować Pythona do iteracji pozycje 0, 1, 2, aż do rymów [długość - 1] i wypisz wartości.
#! / usr / bin / python3 rhymes = ['Mary', 'Had', 'A', 'Little', 'Lamb'] print ("Drukowanie każdego słowa w nowej linii, do której ma dostęp indeks.") dla indeksu w zakresie (len (rymy)): drukuj (rymy [indeks])
Dane wyjściowe dla powyższego kodu będą wyglądać następująco:
Drukowanie każdego słowa w nowej linii, do której można uzyskać dostęp przez indeks.
Mary
Miał
ZA
Mało
Pętla While
Ogólną składnię pętli while można przedstawić w następujący sposób:
while warunek: # wykonaj następujące kroki
Powtarza kroki, o ile warunek jest spełniony. Tak więc nieskończoną pętlę można łatwo napisać za pomocą tej pętli while, tak jak tworzymy ją w C / C ++ / Javie za pomocą:
test = 1, podczas gdy test == 1: # wykonaj te kroki nieskończoną liczbę razy
W poniższym programie drukujemy liczby od 11 do 20 za pomocą prostej pętli while.
#! / usr / bin / python3 print ("Licząc od 11 do 20") count = 11 while count = 20: print (count) count = count + 1
Wynik powyższego programu będzie następujący:
Licząc od 11 do 20
11
12
13
14
15
16
17
18
19
Pętle zagnieżdżone
Możliwe jest zagnieżdżenie pętli w innej pętli. Rozważmy następujący przykładowy program. Jest przeznaczony do drukowania piramidy liczb w następujący sposób:
1
1 2
1 2 3
…
1 2 3… n
#! / usr / bin / python3 # Program do drukowania piramidy liczb, na przykład: for i in range (1,6): for j in range (1, i + 1): print (j, end = "") print ( „”)
W pierwszej pętli for określamy dolną granicę zakresu jako 1, a górną jako 5 + 1. W drugiej pętli określamy zakres od 1 do i + 1 dla każdej linii. Zauważ, że instrukcja print ma parametr o nazwie end = ”“.
Ma to na celu skierowanie interpretera do drukowania dalszych wyjść w tej samej linii, a wszystkie te wyjścia powinny być oddzielone za pomocą pokazanego znaku specjalnego. Jeśli instrukcja zostanie zmieniona na print (j, end =’, ’), wszystkie liczby będą miały na końcu przecinek. Wynik dla powyższego programu będzie:
1
1 2
1 2 3
1 2 3 4
Instrukcje sterowania pętlą
Python oferuje trzy instrukcje sterujące:
- Instrukcja Break: Kończy instrukcję pętli i przenosi kontrolę poza zakres do następnej instrukcji następującej po pętli.
- Kontynuuj oświadczenie: Powoduje, że pętla pomija pozostałe kroki pętli, ale kontynuuje ją w następnej iteracji.
- Oświadczenie Pass: Często przydaje się do debugowania kodu. Tak naprawdę nic się nie dzieje, gdy instrukcja jest wykonywana.
Dowiedzmy się więcej o tych stwierdzeniach na przykładzie:
#! / usr / bin / python3 print ('Drukowanie listów w literze powitalnej do l') dla litery w 'Witamy': if letter == 'l': break print (letter, end = ",") print ("" ) print ('Drukowanie liter na powitanie po pominięciu l') dla litery w 'Welcome': if letter == 'l': continue print (letter, end = ",") print ("") print ("Dodawanie bloku przejścia kiedy l jest napotkane ") dla litery w 'Witamy': if letter == 'l': pass print (" ") print (" Napotkany blok przebiegu ") print (" Kontynuuj drukowanie ") print (letter, end =", ")
Wynik powyższego kodu będzie następujący:
Drukowanie listów w powitalnym do litery l
W, e,
Drukowanie listów powitalnych po pominięciu l
W, e, c, o, m, e,
Dodanie bloku przebiegu, gdy napotkany zostanie l
W, e,
Napotkana blokada przepustki
Kontynuuj drukowanie
l, c, o, m, e,