Petla warunkowa, break, continue, petla z wartownikiem
ð Podstawa programowa: II.1Petla while powtarza blok kodu tak dlugo, jak dlugo warunek jest prawdziwy. Uzywamy jej, gdy nie wiemy z gory, ile razy trzeba powtorzyc operacje.
while nigdy nie stanie sie falszywy, program bedzie dzialal w nieskonczonosc. Aby przerwac taki program, uzyj Ctrl + C.
# Odliczanie
licznik = 10
while licznik > 0:
print(licznik)
licznik -= 1
print("Start!")
Czesty wzorzec - petla dziala, az uzytkownik wpisze wartosc "stop":
tekst = ""
while tekst != "koniec":
tekst = input("Wpisz cos (lub 'koniec'): ")
if tekst != "koniec":
print(f"Wpisales: {tekst}")
print("Zakonczono.")
break natychmiast konczy petle, niezaleznie od warunku:
while True: # petla nieskonczona
odpowiedz = input("Podaj liczbe (lub 'q' aby zakonczyc): ")
if odpowiedz == "q":
break
liczba = int(odpowiedz)
print(f"Kwadrat: {liczba ** 2}")
continue pomija reszte biezacej iteracji i przechodzi do nastepnej:
for i in range(1, 11):
if i % 3 == 0:
continue # pomin wielokrotnosci 3
print(i) # wypisze: 1, 2, 4, 5, 7, 8, 10
Blok else wykonuje sie, gdy warunek petli staje sie falszywy (ale NIE gdy uzyjemy break):
n = 7
i = 2
while i < n:
if n % i == 0:
print(f"{n} nie jest liczba pierwsza (dzielnik: {i})")
break
i += 1
else:
print(f"{n} jest liczba pierwsza!")
for moze byc zapisana jako while (ale nie na odwrot w prosty sposob)Napisz program, ktory losuje liczbe od 1 do 100 (random.randint(1, 100)). Uzytkownik zgaduje - program podpowiada "za duzo" lub "za malo". Gra trwa az do odgadniecia. Wyswietl liczbe prob.
import random
sekret = random.randint(1, 100)
proby = 0
print("Zgadnij liczbe od 1 do 100!")
while True:
strzal = int(input("Twoj strzal: "))
proby += 1
if strzal < sekret:
print("Za malo!")
elif strzal > sekret:
print("Za duzo!")
else:
print(f"Brawo! Odgadles w {proby} probach!")
break
Napisz program, ktory wczytuje kolejne liczby od uzytkownika i sumuje je. Program konczy sie, gdy suma przekroczy 100. Wyswietl koncowa sume i liczbe wczytanych liczb.
suma = 0
ile = 0
while suma <= 100:
liczba = float(input("Podaj liczbe: "))
suma += liczba
ile += 1
print(f"Suma: {suma}")
print(f"Wczytano {ile} liczb.")
Napisz program, ktory wymaga od uzytkownika podania hasla spelniajacego warunki: min. 8 znakow, zawiera cyfre, zawiera wielka litere. Program powtarza prosbe, az haslo bedzie poprawne.
while True:
haslo = input("Podaj haslo: ")
if len(haslo) < 8:
print("Haslo musi miec min. 8 znakow!")
continue
ma_cyfre = False
ma_wielka = False
for znak in haslo:
if znak.isdigit():
ma_cyfre = True
if znak.isupper():
ma_wielka = True
if not ma_cyfre:
print("Haslo musi zawierac cyfre!")
elif not ma_wielka:
print("Haslo musi zawierac wielka litere!")
else:
print("Haslo zaakceptowane!")
break
Napisz program obliczajacy ciag Collatza: wczytaj liczbe n. Jesli n jest parzyste - podziel przez 2, jesli nieparzyste - pomnoz przez 3 i dodaj 1. Powtarzaj az n = 1. Wyswietl caly ciag i liczbe krokow.
n = int(input("Podaj liczbe poczatkowa: "))
kroki = 0
print(n, end=" ")
while n != 1:
if n % 2 == 0:
n = n // 2
else:
n = 3 * n + 1
print(f"-> {n}", end=" ")
kroki += 1
print(f"\nLiczba krokow: {kroki}")