Python 3 - pętle
Ogólnie instrukcje są wykonywane sekwencyjnie - pierwsza instrukcja funkcji jest wykonywana jako pierwsza, po niej następuje druga i tak dalej. Może zaistnieć sytuacja, w której trzeba będzie kilkakrotnie wykonać blok kodu.
Języki programowania zapewniają różne struktury kontrolne, które pozwalają na bardziej skomplikowane ścieżki wykonywania.
Instrukcja pętli umożliwia wielokrotne wykonanie instrukcji lub grupy instrukcji. Poniższy diagram ilustruje instrukcję pętli -
Język programowania Python udostępnia następujące typy pętli do obsługi wymagań dotyczących pętli.
Sr.No. | Typ i opis pętli |
---|---|
1 | pętla while Powtarza instrukcję lub grupę instrukcji, gdy dany warunek ma wartość PRAWDA. Testuje warunek przed wykonaniem treści pętli. |
2 | dla pętli Wykonuje sekwencję instrukcji wiele razy i skraca kod zarządzający zmienną pętli. |
3 | pętle zagnieżdżone Możesz użyć jednej lub więcej pętli w dowolnej innej pętli while lub for. |
Instrukcje sterowania pętlą
Instrukcje sterujące Loop zmieniają wykonanie z jego normalnej sekwencji. Gdy wykonanie opuszcza zakres, wszystkie automatyczne obiekty, które zostały utworzone w tym zakresie, są niszczone.
Python obsługuje następujące instrukcje sterujące.
Sr.No. | Oświadczenie i opis kontroli |
---|---|
1 | instrukcja break Kończy instrukcję pętli i przenosi wykonanie do instrukcji bezpośrednio po pętli. |
2 | kontynuuj oświadczenie Powoduje, że pętla pomija pozostałą część swojego ciała i natychmiast ponownie testuje swój stan przed ponownym powtórzeniem. |
3 | instrukcja pass Instrukcja pass w Pythonie jest używana, gdy instrukcja jest wymagana składniowo, ale nie chcesz, aby żadne polecenie ani kod były wykonywane. |
Przyjrzyjmy się pokrótce instrukcjom sterującym pętli.
Iterator i generator
Iteratorto obiekt, który umożliwia programiście przechodzenie przez wszystkie elementy kolekcji, niezależnie od jej konkretnej implementacji. W Pythonie obiekt iteratora implementuje dwie metody,iter() i next().
Obiekty typu String, List lub Tuple mogą służyć do tworzenia Iteratora.
list = [1,2,3,4]
it = iter(list) # this builds an iterator object
print (next(it)) #prints next available element in iterator
Iterator object can be traversed using regular for statement
!usr/bin/python3
for x in it:
print (x, end=" ")
or using next() function
while True:
try:
print (next(it))
except StopIteration:
sys.exit() #you have to import sys module for this
ZA generator to funkcja, która tworzy lub zwraca sekwencję wartości przy użyciu metody uzysku.
Kiedy wywoływana jest funkcja generatora, zwraca ona obiekt generatora nawet bez rozpoczynania wykonywania funkcji. Gdy metoda next () jest wywoływana po raz pierwszy, funkcja rozpoczyna wykonywanie do momentu osiągnięcia instrukcji yield, która zwraca uzyskaną wartość. Wydajność śledzi, tj. Pamięta ostatnie wykonanie, a drugie wywołanie next () jest kontynuowane od poprzedniej wartości.
Przykład
Poniższy przykład definiuje generator, który generuje iterator dla wszystkich liczb Fibonacciego.
#!usr/bin/python3
import sys
def fibonacci(n): #generator function
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(5) #f is iterator object
while True:
try:
print (next(f), end=" ")
except StopIteration:
sys.exit()