Lekcja 6 - Nikola Horn
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"