Python #6 (pętla while)
Pętla while służy do wielokrotnego wykonywania fragmentu kodu, dopóki warunek logiczny jest spełniony (prawdziwy).
Dopóki warunek jest prawdziwy -> powtarzaj blok kodu
# Składnia
while warunek:
# instrukcje wykonywane w pętli- warunek – to wyrażenie logiczne (np. x < 10, hasło != "1234", True),
- kod wewnątrz pętli musi być wcięty (zazwyczaj 4 spacje, indentation),
- kiedy warunek stanie się False, pętla się zatrzyma,
- pętlę zatrzymuje też break
- pętla while True: jest nieskończona.
X = 0
while True:
x = x + 1
print(x)
if x == 99:
break # WYŚWIETLI LICZBY OD 1 DO 99
while True:
print("Hej!")
break # WYŚWIETLI Hej!
i = 100
while True:
if i == 0:
break
print(i)
i -= 1 # WYŚWIETLI LICZBY OD 100 DO 1Jeśli warunek zawsze jest prawdziwy, pętla nigdy się nie zakończy — tworzy się pętla nieskończona:
while True:
print("To będzie się powtarzać bez końca!")WAŻNE: Ctrl + C (przerwanie pętli z klawiatury w konsoli)
Aby zrobić szybkie wcięcie -> zaznaczam fragment kodu i tab
aby cofnąć -> zaznaczam shift + tab
Instrukcje break i continue
break – natychmiast przerywa całą pętlę.
continue – przeskakuje do kolejnej iteracji, pomijając dalszy kod w bieżącej.
liczba = 0
while liczba < 10:
liczba += 1
if liczba == 5:
continue # pominie 5
if liczba == 8:
break # zakończy pętlę
print(liczba)
# Wynik: 1
#2
#3
#4
#6
#7Zadanie:
# Jak z obecną wiedzą można by było zrobić grę polegającą na zgadnięciu liczby?
# Zgadujemy liczbę 1-100 (włącznie). Po każdym nieudanym podejściu użytkownik dostaje
# informację czy jego strzał by za duży / za mały.
# Na początku przyjmijmy, że użytkownik ma 10 podejść - po ich wyczerpaniu przegrywa.
# Skorzystajcie z pętli while (da się też zrobić z for-em :) ).
# Jeśli pójdzie z tym zadaniem szybko - spróbujcie dodać wybór poziomu trudności
# np. łatwy - 10 prób, średni - 5, trudny - 3.
import random
losowa_liczba = random.randint(1, 100)
print("Witaj w grze")
try:
i = int(input("Wybierz poziom trudności (1 - 10 prób, 2 - 6 prób, 3 - 3 próby; Wybierz 1, 2 lub 3): "))
if i not in range(1, 4):
print("Zły wybór!")
i = int(input("Wybierz poziom trudności (1 - 10 prób, 2 - 6 prób, 3 - 3 próby; Wybierz 1, 2 lub 3): "))
else:
print("Dobry wybór!")
except ValueError:
print("To nie jest liczba!")
print("Koniec gry! Spróbuj jeszcze raz!")
exit()
proby = 0
if i==1:
proby = 10
if i==2:
proby = 6
if i==3:
proby = 3
while proby >0:
odp_uzytkownika = int(input("Podaj liczbę od 1 do 100: "))
if odp_uzytkownika == losowa_liczba:
print("Bingo!")
break
elif odp_uzytkownika > losowa_liczba:
print("Twoja liczba jest większa")
else:
odp_uzytkownika < losowa_liczba
print("Twoja liczba jest mniejsza")
proby -= 1
if proby == 0:
print(f"Przegrałeś! Spróbuj jeszcze raz! Wylosowana liczba to {losowa_liczba}")