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()