Lekcja 6 - Nikola Horn

Lekcja 6 - Nikola Horn
Photo by Alvan Nee / Unsplash

Zadanie domowe - kwestionariusz z pętlami

from random import shuffle

ankieta = [
    (
        "Która z poniższych metod zabezpieczenia 2FA uznawana jest za najbezpieczniejszą?",
        [
            ("SMS", 0),
            ("kod z aplikacji (TOTP)", 0),
            ("klucz sprzętowy", 1),
        ],
    ),
    (
        "Jakie zwierzę nie potrafi skakać?",
        [
            ("jaszczurka", 0),
            ("królik", 0),
            ("chomik", 1),
        ],
    ),
    (
        "Jakie zwierzę zapada w sen zimowy?",
        [
            ("bocian", 0),
            ("lis", 0),
            ("jaszczurka", 1),
        ],
    ),
    (
        "Jaki ptak jest najmniejszy?",
        [
            ("wróbel", 0),
            ("sikorka", 0),
            ("koliber", 1),
        ],
    ),
]

wyniki = {}

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

indeksankiety = 0

for a in ankieta:
    
    print(ankieta[indeksankiety][0])
    shuffle(ankieta[indeksankiety][1])

    odpowiedzi = ankieta[indeksankiety][1]
    print(f"1. {odpowiedzi[0][0]}")
    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]
    indeksankiety = indeksankiety+1

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

Zgadnij liczbę

import random

liczbakomp = random.randint(1, 100)
wygrana = False

while True:
    poziomtrudnosci=int(input("""Witaj w grze zgadnij liczbę!
                          Wybierz poziom trudności:
                          0 - łatwy (10 prób)
                          1 - trudny (3 próby)
                          """))
    if poziomtrudnosci == 1:
        proby = 3
        break
    elif poziomtrudnosci == 0:
        proby = 10
        break
    else: 
     print("Wpisałeś niepoprawną liczbę. Wpisz jeszcze raz.")
    


for a in range(proby):
    liczbagracz = int(input(f"Masz {proby-a} prób. Zgadnij liczbę z zakresu 1-100: "))
    if liczbagracz==liczbakomp:
            print("Zgadłeś!")
            wygrana = True
            break
    elif liczbakomp>liczbagracz:
            print("Nie udało się, spróbuj jeszcze raz! Poszukiwana liczba jest większa.")
            wygrana = False
    elif liczbakomp<liczbagracz:
            print("Nie udało się, spróbuj jeszcze raz! Poszukiwana liczba jest mniejsza.")
            wygrana = False

if wygrana == False:
    print("Koniec prób. Niestety, nie udało się zgadnąć liczby.")

"Labirynt" kwadratowy z pętlą while - żółwik

import turtle

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

wartosc=80

#ilosc = int(input("Ile chcesz kwadratów? "))

i = 5

while i < 600:
    zolwik.forward(i)
    zolwik.left(90)
    i = i+5
    

turtle.exitonclick()

"Random walk" - żółwik

import random
import turtle

screen = turtle.Screen()
screen.setup(1600, 960)
zolwik = turtle.Turtle()
zolwik.shape("turtle")
zolwik.pensize(5)
zolwik.speed(9)

kolory = [
"CornflowerBlue",
"DarkOrchid",
"IndianRed",
"DeepSkyBlue",
"LightSeaGreen",
"wheat",
"SlateGray",
"SeaGreen",
]

katy = [0, 90, 180, 270]

while True:
    zolwik.color(random.choice(kolory))
    zolwik.right(random.choice(katy))
    zolwik.forward(20)

Notatki z zajęć

range (6, 600, 2)

6 - od; 600 - do; 2 - zwiększa się o co dwa

Pętla while

"wykonaj tak długo aż", wykonuje się tak długo aż warunek zostanie spełniony

i = 0

while i<10:
  print(i)
  i+1

wydrukuje w pionie: 0 1 2 3 4.... aż do 9

n = 5

while n:
  n = n-1
  print(n, end=" ")

program wydrukuje w poziomie: 4 3 2 1 0, bo 0 będzie potraktowane jak False, ponieważ n=0 oznacza, że warunek nie jest już spełniony

Wychodzenie z pętli

break

while True:
  print("Hej")
  break

pętla z warunkiem True działa nieskończoną ilość razy; z warunkiem False - 0 razy

break - program wyjdzie z pętli w tym miejscu, czyli w tym wypadku po wydrukowaniu jednego "Hej"