6. While loop

6.1. Declaration

  • Continue execution when argument is True

6.1.1. Never ending loop

while True:
    pass

6.1.2. Stop conditions

i = 0

while i <= 5:
    print(i)
    i += 1

# 0
# 1
# 2
# 3
# 4
# 5

6.1.3. Exit flag

i = 0
exit_flag = False

while not exit_flag:
    if i % 2 == 0:
        exit_flag = True

    print(i)
    i += 1

# 0

6.2. break and continue

6.2.1. Skipping iterations

i = 0

while i <= 10:
    i += 1

    if i % 2 == 0:
        continue

    print(i)

# 1
# 3
# 5

6.2.2. Exiting the loop

while True:
    number = input('Type number: ')

    # if user hit enter, without typing number
    if not number:
        break

6.3. Assignments

6.3.1. Report card

  • Filename: loop_report_card.py
  • Lines of code to write: 15 lines
  • Estimated time of completion: 10 min
  1. Do zmiennej zapisz skalę ocen (2, 3, 3.5, 4, 4.5, 5)
  2. Za pomocą pętli przekonwertuj skalę na List[float]
  3. Użytkownik podaje oceny jako int lub float (nie będzie próbował psuć)
  4. Jeżeli ocena jest na liście dopuszczalnych ocen, dodaj ją do dzienniczka
  5. Jeżeli wciśnięto sam Enter, zakończ wpisywanie do dzienniczka
  6. Jeżeli wpisano cyfrę nie znajdującą się na liście dopuszczalnych ocen, wyświetl informację “Grade is not allowed” i dalej kontynuuj wpisywanie
  7. Na zakończenie wyświetl wyliczoną dla dzienniczka średnią arytmetyczną z ocen
The whys and wherefores:
 
  • Wczytywanie ciągu znaków od użytkownika
  • Generowanie struktur danych i konwersja typów
  • Weryfikacja ciągu wprowadzonego od użytkownika
  • Korzystanie z pętli oraz instrukcji wychodzących
  • Konwersja typów i rzutowanie
  • Sprawdzanie czy obiekt jest instancją klasy
  • Wykorzystanie funkcji wbudowanych
Hints:
  • average = sum(...) / len(...)