pętla while w Pythonie. Jak to działa, przykłady użycia

Pętle to jedno z głównych narzędzi każdego języka. W Pythonie istnieją dwie podstawowe pętle, z których jedną jest while. Rozważ to, a także dla lepszego zrozumienia obrazu, jeszcze jeden. Rzeczywiście, w porównaniu z czymś podobnym, o wiele łatwiej jest zrozumieć każdy materiał, prawda?

Pojęcie cyklu

Pętla jest potrzebna, gdy dana czynność musi być wykonana wiele razy. Jest to bardzo uproszczone, ponieważ w rzeczywistości zakres zastosowań cykli jest znacznie szerszy. W Pythonie istnieją dwa główne typy pętli: for i while. Najpopularniejszy jest dla.

Oprócz określonych akcji możesz zapętlić różne fragmenty kodu do pewnego momentu. Może to nastąpić określoną liczbę razy lub tak długo, jak spełniony jest określony warunek.

Zanim zaczniemy rozumieć rodzaje pętli, a w szczególności, musimy jeszcze zrozumieć, czym jest iteracja. Jest to jedno powtórzenie akcji lub sekwencji akcji podczas bieżącego cyklu w ramach bieżącego uruchomienia aplikacji.

Cykl dla

Nasza pętla For nie jest licznikiem, jak w wielu innych językach. Jego zadaniem jest wyliczenie pewnej sekwencji wartości. Co to znaczy? Powiedzmy, że mamy listę elementów. Po pierwsze, pętla zajmuje pierwszy, drugi, trzeci i tak dalej.

Zaletą tej pętli w Pythonie jest to, że nie musisz określać indeksu elementu, aby wiedzieć, kiedy zakończyć pętlę. Wszystko zrobi się automatycznie.

>>> spisok = [10, 40, 20, 30]

>>> dla elementu w spisok:

… drukuj(element + 2)

...

12

42

22

32

W naszym przykładzie użyliśmy zmiennej element po poleceniu for. Ogólnie nazwa może być dowolna. Na przykład popularnym oznaczeniem jest i. I przy każdej iteracji tej zmiennej będzie przypisywany konkretny obiekt z listy, który nazwaliśmy odpowiednim słowem.

W naszym przypadku lista to ciąg liczb 10,40,20,30. W każdej iteracji w zmiennej pojawia się odpowiednia wartość. Na przykład, gdy tylko pętla się rozpocznie, zmienna element przypisana jest wartość 10. W następnej iteracji dziesiątka zamienia się w liczbę 40, za trzecim razem w liczbę 20, a na końcu w ostatniej iteracji pętli zmienia się w 30.

Sygnałem do zakończenia cyklu jest koniec elementów na liście.

Jeśli potrzebujesz pętli do klasycznego wyliczania wartości, tak jak w innych językach programowania, powinieneś stworzyć listę z ciągiem liczb naturalnych aż do potrzebnej nam wartości.

>>> spisok = [1,2,3,4,5]

Lub użyj funkcji len(), aby określić długość listy. Ale w tym przypadku lepiej użyć pętli podczas, ponieważ nie ma potrzeby używania zmiennej.

Jeśli chcesz zmienić kolejność wartości na liście, wykonaj pętlę dla i tu przychodzi na ratunek. Aby to zrobić, w każdej iteracji każdemu elementowi listy musi być przypisana odpowiednia wartość.

Podczas pętli

W przeciwieństwie do cyklu dla, który po prostu iteruje po wartościach sekwencji, pętli Podczas ma więcej zastosowań. Nazwa tego typu cykli jest tłumaczona jako „jeszcze”. To znaczy „do”.

Jest to uniwersalna pętla, którą można znaleźć we wszystkich językach programowania. I pod pewnymi względami przypomina operator warunkowy cis, który sprawdza, czy spełniony jest określony warunek. Tylko w przeciwieństwie do operatora warunkowego, Podczas wykonuje kontrolę w każdej iteracji, a nie tylko raz. I tylko wtedy, gdy warunek jest fałszywy, pętla się kończy i wykonywane jest polecenie, które po niej następuje. W prostych słowach, jeśli sytuacja, w której pracuje, nie jest już aktualna.

Jeśli narysujemy cykl Podczas w uproszczeniu odbywa się to za pomocą takiego schematu.pętla while w Pythonie. Jak to działa, przykłady użycia

Główna gałąź programu (która działa poza pętlą) jest przedstawiona na tym rysunku za pomocą niebieskich prostokątów. Turkus reprezentuje korpus cyklu. Z kolei romb to warunek sprawdzany przy każdej iteracji.

Cykl Podczas może skutkować dwoma wyjątkami:

  1. Jeśli na początku pętli wyrażenie logiczne nie zwraca wartości true, to po prostu się nie rozpoczyna, ponieważ zakończyło się przed wykonaniem. Ogólnie sytuacja ta jest normalna, ponieważ w pewnych okolicznościach aplikacja może nie uwzględniać obecności wyrażeń w treści pętli.
  2. Jeśli wyrażenie jest zawsze prawdziwe, może to prowadzić do pętli. To znaczy do niekończącego się przewijania cyklu. Dlatego w takich programach zawsze powinna znajdować się instrukcja wyjścia z pętli lub programu. Jednak taka sytuacja wystąpi, jeśli program był w stanie określić prawdziwość lub fałsz określonego warunku. Jeśli tego nie zrobiła, zwracany jest błąd z zakończeniem programu. Lub możesz obsłużyć błąd, a następnie, jeśli wystąpi, zostanie wykonany określony kod.

Istnieje wiele opcji postępowania z błędem. Na przykład program może poprosić użytkownika o poprawne wprowadzenie danych. Tak więc, jeśli dana osoba wskazała liczbę ujemną, gdzie może być tylko dodatnia, lub wprowadziła litery tam, gdzie powinny być same cyfry, program może o tym powiedzieć.

Przykłady pętli

Oto przykład kodu, który w tym przypadku obsługuje błąd.

n = input("Wprowadź liczbę całkowitą: ") 

podczas gdy typ(n) != int:

    Wypróbuj:

        n = int (n)

    z wyjątkiem ValueError:

        print("Zły wpis!")

        n = input("Wprowadź liczbę całkowitą: ") 

jeśli n % 2 == 0:

    drukuj("Równo")

jeszcze:

    drukuj("Nieparzysty")

Pamiętaj, że Python używa dwukropków do deklarowania złożonych konstrukcji kodu.

W powyższym kodzie zdefiniowaliśmy jako warunek, że powinniśmy sprawdzić, czy liczba jest liczbą całkowitą. Jeśli tak, zwracana jest wartość fałsz. Jeśli nie, to prawda.

W drugiej części kodu, gdzie używany jest operator if, użyliśmy operatora %, aby znaleźć resztę po operacji dzielenia. Następnym krokiem jest sprawdzenie, czy liczba jest parzysta. Jeśli nie, to w tym przypadku reszta to jeden. W związku z tym liczba jest nieparzysta. 

Mówiąc prościej, powyższy kod najpierw sprawdza, czy ciąg wprowadzony przez użytkownika jest liczbą. Jeśli tak, to po raz drugi sprawdza się, czy pozostała reszta z dzielenia przez dwa. Ale drugi blok nie zostanie wykonany, dopóki wartość wprowadzona przez użytkownika nie będzie numeryczna.

Oznacza to, że pętla będzie regularnie wykonywana, dopóki warunek nie wystąpi. W tej sytuacji działa to tak. 

Oznacza to, że możesz przejść odwrotnie: zapętl określoną akcję, aż zdarzenie stanie się fałszywe.

Parsowanie kodu

Zobaczmy teraz bardziej szczegółowo, jak działa ten kod. Aby to zrobić, przeanalizujemy to krok po kroku.

  1. Najpierw użytkownik wprowadza ciąg, który jest akceptowany przez zmienną n. 
  2. Korzystanie z pętli Podczas sprawdzany jest typ tej zmiennej. W pierwszym wpisie nie jest równy int. Dlatego w wyniku testu okazuje się, że ten warunek jest prawdziwy. Dlatego wprowadzana jest treść pętli.
  3. Z pomocą operatora próbować próbujemy przekonwertować ciąg na liczbę. Jeśli tak się stanie, błąd nie wystąpi. W związku z tym nie ma potrzeby ich przetwarzania. Dlatego interpreter wraca na początek pętli i zgodnie z wynikami sprawdzenia okazuje się, że stał się liczbą całkowitą. Przejdźmy więc do kroku 7
  4. Jeśli konwersja nie powiodła się, zgłaszany jest błąd ValueError. W takim przypadku przepływ programu jest wysyłany do obsługi z wyjątkiem.
  5. Użytkownik wprowadza nową wartość, która jest przypisana do zmiennej n.
  6. Tłumacz powraca do kroku 2 i ponownie sprawdza. Jeśli jest to wartość całkowita, przejdź do kroku 7. Jeśli nie, konwersja zostanie podjęta ponownie zgodnie z krokiem 3.
  7. Z pomocą operatora if Określa, czy po podzieleniu liczby przez 2 istnieje reszta. 
  8. Jeśli nie, zwracany jest tekst „parzysty”.
  9. Jeśli nie, zwracany jest tekst „nieparzysty”.

Rozważmy teraz taki przykład. Spróbuj określić, ile razy ten cykl przejdzie?

suma = 100 

i = 0

gdy ja < 5:

    n = int(wejście())

    suma = suma — n

    i = i + 1 

print("Pozostały", łącznie)

Prawidłowa odpowiedź to 5. Początkowo wartość zmiennej i – zero. Interpreter sprawdza, czy zmienna jest równa i 4 lub mniej. Jeśli tak, zwracana jest wartość. prawdziwy, a pętla jest odpowiednio wykonywana. Wartość zostaje zwiększona o jeden.

Po pierwszej iteracji wartość zmiennej wynosi 1. Przeprowadzane jest sprawdzenie i program rozumie, że ta liczba jest ponownie mniejsza niż 5. W związku z tym ciało pętli jest wykonywane po raz drugi. Ponieważ kroki są podobne, wartość jest również zwiększana o jeden, a zmienna jest teraz równa 2.

Ta wartość jest również mniejsza niż pięć. Następnie pętla jest wykonywana po raz trzeci, dodawana do zmiennej i 1 i przypisuje mu wartość 3. To znowu mniej niż pięć. I tak dochodzimy do szóstej iteracji pętli, przy której wartość zmiennej i równa się 5 (w końcu pierwotnie było to zero, o ile pamiętamy). W związku z tym warunek ten nie przechodzi testu, a pętla jest automatycznie kończona i wykonywane jest przejście do następnego kroku, który znajduje się poza nią (lub zakończenie programu, jeśli nie podano poniższych kroków).

Cykl może również zachodzić w odwrotnym kierunku. Oto przykład kodu, w którym przy każdej kolejnej iteracji jedna jest odejmowana od bieżącej wartości zmiennej. 

suma = 100 

podczas gdy suma > 0:

    n = int(wejście())

    suma = suma — n 

print("Wyczerpany zasób")

Spróbuj zgadnąć, co robi ten program! Wyobraź to sobie w zmiennej całkowity przechowywane są informacje o zasobie programu. Za każdym razem tłumacz sprawdza, czy zasób istnieje. Jeśli nie, zostanie wyświetlony tekst „Wyczerpany zasób” i program zostanie zamknięty. A z każdą iteracją pętli zasób zmniejsza się o liczbę określoną przez użytkownika.

A teraz praca domowa. Spróbuj zmienić powyższy kod, aby zmienna nie mogła fizycznie stać się ujemna. 

Komentarze 4

  1. si code ahaan usoo gudbi

Dodaj komentarz