Python'da while sikli — takrorlash
Bir xil ishni ko’p marta takrorlash kerak bo’lsa-chi? Masalan, 1 dan 100
gacha sonlarni chiqarish uchun 100 ta print yozib bo’lmaydi. Aynan shu
yerda sikl (takror) yordamga keladi. Bu darsda birinchi sikl —
while bilan tanishamiz.
while nima qiladi
while (modomiki, toki) sikli bitta shartga qaraydi: shart rost ekan,
ostidagi blokni qayta-qayta bajaraveradi. Shart yolg’onga aylangan zahoti
to’xtaydi.
Bu yerda nima bo’ldi: son boshida 1. Shart son <= 5 rost — blok
ishlaydi, son chiqadi va 1 ga oshadi. Bu 5 gacha davom etadi. son 6
bo’lganda shart yolg’on — sikl to’xtaydi.
Diqqat qiling: while qatori ham, xuddi if
kabi, ikki nuqta (:) bilan tugaydi va tanasi chekinish (4 bo’sh joy)
bilan yoziladi.
Sanagich — sikldagi eng keng tarqalgan naqsh
Yuqoridagi son — sanagich: har aylanishda o’zgarib boradigan
o’zgaruvchi. Sanagichsiz while ko’pincha ma’nosiz bo’ladi, chunki uni
to’xtatadigan o’zgarish qayerdandir kelishi kerak.
son = son + 1 ni qisqartirib son += 1 deb yozish mumkin — bu bir xil
ma’noni bildiradi va ko’proq shunday yoziladi:
+= — “o’ziga qo’shib qo’y” degani. Xuddi shunday -=, *= ham bor.
break — siklni erta to’xtatish
Ba’zan shart hali rost bo’lsa ham, siklni darhol to’xtatish kerak bo’ladi.
break shuni qiladi — u sikldan butunlay chiqib ketadi:
Shart son <= 100 bo’lsa ham, son 5 ga yetganda break ishladi va sikl
to’xtadi. break deyarli har doim if bilan birga keladi.
continue — bu aylanishni o’tkazib yuborish
continue siklni to’xtatmaydi — u faqat shu aylanishning qolganini
o’tkazib yuborib, keyingisiga o’tadi. Faqat toq sonlarni chiqaraylik:
Son juft bo’lsa (son % 2 == 0), continue print gacha yetmasdan
keyingi aylanishga o’tadi. % amali — sonlar darsida
ko’rganimizdek, bo’lishdan qolgan qoldiqni beradi.
while bilan foydalanuvchini kutish
while ning kuchli tomoni — takror sonini oldindan bilmaganda ishlashi.
Masalan, foydalanuvchi to’g’ri parol kiritmaguncha so’rayveramiz:
parol = ""
while parol != "python123":
parol = input("Parolni kiriting: ")
print("Xush kelibsiz!")
Foydalanuvchi noto’g’ri yozsa, shart hali rost — qayta so’raydi. To’g’ri
yozganda shart yolg’on bo’lib, sikl to’xtaydi va salom chiqadi. Bu yerda
input har aylanishda yangi qiymat oladi.
Amaliy mashq
Son topish o’yinini yozing:
yashirin = 7o’zgaruvchisini yarating;whilesikli ichida foydalanuvchidan son so’rang;- son katta bo’lsa “kichikroq”, kichik bo’lsa “kattaroq” deb ayting;
- to’g’ri topilganda xabar chiqarib,
breakbilan sikldan chiqing; - urinishlar sonini sanaydigan o’zgaruvchi qo’shing va oxirida chiqaring.
break ni olib tashlasangiz nima bo’ladi — sikl qachon tugaydi?
Qisqacha xulosa
while— shart rost ekan blokni qayta-qayta bajaradi; qatori:bilan tugaydi, tanasi chekinish bilan yoziladi.- Ko’pincha sanagich kerak; uni o’zgartirishni unutsangiz — cheksiz sikl (Ctrl + C bilan to’xtatiladi).
son += 1—son = son + 1ning qisqa shakli.break— sikldan butunlay chiqadi;continue— shu aylanishni o’tkazib, keyingisiga o’tadi.whiletakror sonini oldindan bilmaganda (masalan, parol so’rashda) ayniqsa qulay.
Keyingi darsda for sikli va range ni
ko’ramiz — takror sonini oldindan bilganda ancha qulayroq usul.