7. Sikllar: while, break, continue
Nazariya
while
for — «shuncha marta», while — «shart bajarilguncha»:
n = int(input())
yigindi = 0
while n > 0:
yigindi += n % 10
n //= 10
print(yigindi)Sikl ichida shartga ta’sir qiladigan narsa albatta o‘zgarishi
kerak. Aks holda dastur cheksiz aylanadi va «Vaqt chegarasidan oshdi»
javobini oladi.
break va continue
break — sikldan butunlay chiqadi. continue — joriy qadamni tashlab,
keyingisiga o‘tadi.
for son in sonlar:
if son < 0:
continue # manfiylarni o‘tkazib yuboramiz
if son > 100:
break # 100 dan katta uchrasa to‘xtaymiz
print(son)Sikldagi else
Python‘ning kamdan-kam uchraydigan, lekin foydali imkoniyati: else
sikl break‘siz tugagandagina bajariladi.
for d in range(2, n):
if n % d == 0:
print("tub emas")
break
else:
print("tub")Cheksiz sikl va chiqish
while True:
qator = input()
if not qator:
breakBu kirish qachon tugashi noma’lum bo‘lgan masalalarda ishlatiladi.
Misol
n = int(input())
d = 2
tub = n > 1
while d * d <= n:
if n % d == 0:
tub = False
break
d += 1
print('ha' if tub else 'yoq')
Mashq masalalari
| ✓ | Kod | Masala | Qiyinlik |
|---|---|---|---|
| A104 | Raqamlar yig‘indisi | Oson | |
| PY07-1 | Raqamlar soni | Boshlang‘ich | |
| PY07-10 | Juft raqamlar | Oson | |
| PY07-11 | Zinapoya qurish | Oson | |
| PY07-12 | Baxtli son | O‘rta | |
| PY07-13 | Kaprekar doimiysi | O‘rta | |
| PY07-14 | Faktorial oxiridagi nollar | O‘rta | |
| PY07-15 | Tub ko‘paytuvchilarga yoyish | Qiyin | |
| PY07-2 | Sonni teskari o‘qish | Boshlang‘ich | |
| PY07-3 | Kollats zanjiri | Oson | |
| PY07-4 | Nolgacha yig‘indi | Oson | |
| PY07-5 | Eng kichik bo‘luvchi | O‘rta | |
| PY07-6 | Ikkilik yozuv | Oson | |
| PY07-7 | Raqamlar ko‘paytmasi | Oson | |
| PY07-8 | Omonat | Oson | |
| PY07-9 | Parolni topish | Oson |