Lekcja 6 - Pętla while KP

Lekcja 6 - Pętla while KP
Photo by Kara Eads / Unsplash

Pętla while – wykonuj tak długo jak warunek jest spełniony


Diagram:

Możemy chcieć przerwać pętlę (for i while) -> break

Porównanie pętli - obie mogą robić to samo

While:

import turtle

zolwik = turtle.Turtle()
zolwik.speed(8)
zolwik.shape("turtle")

i = 2

while i < 200:
    zolwik.forward(i)
    zolwik.left(90)
    i = i +2


turtle.exitonclick()

For:

import turtle

zolwik = turtle.Turtle()
zolwik.speed(8)
zolwik.shape("turtle")


for i in range(2, 200, 2):
     zolwik.forward(i)
     zolwik.left(90)


turtle.exitonclick()

Zadania:

Gra zgadnij losową liczbę

import random

print("Zgadnij liczbe z zakresu 1-100\n")

KOMPUTER = random.randint(1, 100)
#print(KOMPUTER)

nrproby = 1

while True:
    poziom = int(input("""
    Grasz w łatwiejsza czy trudniejsza wersje?
    0 - łatwiejsza
    1 - trudniejsza
    """))
    if poziom == 0:
        iloscprob = 10
        break
    elif poziom == 1:
        iloscprob = 3
        break
    else:
        print("Wpisales nieprawidlowy poziom trudnosci. Sproboj ponownie")

for i in range(iloscprob):
    print(f"Proba {nrproby}")
    uzytkownik = int(input("Podaj cyfrę: "))

    if nrproby == iloscprob:
        print("Przegrales. Skonczyly Ci sie proby :(")
    else:
        if KOMPUTER > uzytkownik:
            print("Podaj wieksza liczbe\n")
        elif KOMPUTER < uzytkownik:
            print("Podaj mniejsza liczbe\n")
        elif KOMPUTER == uzytkownik:
            print("Wygrales")
            break           
    nrproby += 1

ZADANIE DOMOWE - Quiz

from random import shuffle

ankieta = [
    (
        "\nKtóra z poniższych metod zabezpieczenia 2FA uznawana jest za najbezpieczniejszą?",
        [
            ("SMS", 0),
            ("kod z aplikacji (TOTP)", 0),
            ("klucz sprzętowy", 1),
        ],
    ),
    (
        "\nKtóry z poniższych języków programowania uznany został za najpopularniejszych wg . rankingu Tiobe 2023?",
        [
            ("Cobol", 0),
            ("Python", 1),
            ("Pascal", 0),
        ],
    ),
]

wyniki = {}
kontunuuj = "T"
kod = 0

while kontunuuj == "T":

    imie = input("\nWprowadz swoje imie: ")
    imie = f"{kod}_{imie}" #zabezbieczenie na wpisanie tego samego imienia - dodanie kodu uzytkowanika
    kod += 1
    print(f"Twój identyfikator to: {imie}")

    # while imie in wyniki.keys(): #sprawdzenie czy imie juz istnieje
    #     imie = input("To imię już istnieje. Wprowadz swoje imie: ")

    wyniki[imie] = 0
    shuffle(ankieta)

    for i in range(len(ankieta)):
        print(ankieta[i][0])
        shuffle(ankieta[i][1])

        odpowiedzi = ankieta[i][1]
        print(f"1. {odpowiedzi[0][0]}")
        print(f"2. {odpowiedzi[1][0]}")
        print(f"3. {odpowiedzi[2][0]}")
        wybor = input("Wprowadz nr odpowiedzi: ")
        while wybor != "1" and wybor != "2" and wybor != "3":
            wybor = input("Podales nieprawiidlowa liczbe. 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 ***********")

    kontunuuj = ""
    while kontunuuj != "T" and kontunuuj != "N":
        kontunuuj = input("Czy chcesz, aby kolejna osba przystapila do ankiety? T - tak, N - nie: ").upper()
        

print(wyniki)