Lekcja 6- pętla while; break- Eliza S

Lekcja 6- pętla while; break- Eliza S
Photo by Nareeta Martin / Unsplash

Pętla while:

Wykonuj tak długo, aż...

Pętla ta wykonuje się tak długo, aż jakiś warunek jest spełniony

while True: #warunek cały czas jest spełniony
CTRL + C - przerywa nieskończoną pętlę while

Polecenie break:

Przerywa pętlę.

Kwestionariusz- rozwinięcie programu:

from random import shuffle

# wersja po wprowadzeniu struktury danych do przechowania pytan z odpowiedziami i punktacja
# alternatywa
# ułatwia indeksowanie - nie ma potrzeby wyciagniecia klucza

ankieta = [
    (
        "Która z poniższych metod zabezpieczenia 2FA uznawana jest za najbezpieczniejszą?",
        [
            ("SMS", 0),
            ("kod z aplikacji (TOTP)", 0),
            ("klucz sprzętowy", 1),
        ],
    ),
    (
        "Który z poniższych języków programowania uznany został za najpopularniejszych wg rankingu Tiobe 2023?",
        [
            ("Cobol", 0),
            ("Python", 1),
            ("Pascal", 0)
        ],
    ),
    (
        "Skrót Iot oznacza:",
        [
            ("Internet of Things (Internet rzeczy)", 1),
            ("Instrument of Technology", 0),
            ("Informacje o Technologii", 0)
        ],
    ),
    (
        "Czy kod w Pythonie wymaga ręcznej kompilacji dla każdego z systemów operacyjnych?",
        [
            ("Tak", 0),
            ("Nie", 1)
        ],
    ),
    (
        "VSCode to:",
        [
            ("edytor tekstu", 1),
            ("przeglądarka internetowa", 0),
            ("program do grafiki wektorowej", 0)
        ],
    ),
]

wyniki = {}

imie = input("Wprowadz swoje imie: ")
wyniki[imie] = 0
licznik_indeks = 0
pytania = ankieta[licznik_indeks][0]

for licznik_indeks in range(len(ankieta)):
    print(ankieta[licznik_indeks][0])
    odpowiedzi = ankieta[licznik_indeks][1]
    shuffle(odpowiedzi)
    if len(odpowiedzi) == 2:
        print(f"1. {odpowiedzi[0][0]}")
        print(f"2. {odpowiedzi[1][0]}") 
    else:
        print(f"1. {odpowiedzi[0][0]}") #indeks pierwszy [0] odnosi się do pierwszego elementu listy z odpowiedziami ("SMS", 0) a drugi indeks [0] do pierwszego elementu w krotce, czyli konkretnej odpowiedzi tekstowej "SMS"
        print(f"2. {odpowiedzi[1][0]}") 
        print(f"3. {odpowiedzi[2][0]}")
    wybor = input("Wprowadz nr odpowiedzi: ")

    indeks_wyboru = int(wybor) - 1

    wyniki[imie] += odpowiedzi[indeks_wyboru][1]

print(f"\n *********** \n {imie},Twój wynik to: {wyniki[imie]} \n ***********")

```