Python'da for sikli va range
O’tgan darsda while bilan takrorlashni ko’rdik.
Uni ishlatishda sanagichni o’zimiz yuritishimiz kerak edi. for sikli esa
buni o’zi bajaradi: u tayyor ketma-ketlik ustidan boshdan-oxir yuradi. Bu
darsda for va uning eng ko’p sherigi — range bilan tanishamiz.
for — ketma-ketlik ustidan yurish
for sikli bir to’plamdagi har bir elementni navbat bilan oladi va
har biri uchun blokni bir marta bajaradi:
Bu yerda meva — har aylanishda ro’yxatning navbatdagi elementiga
aylanadigan o’zgaruvchi. Uni istagancha nomlash mumkin, lekin ma’noli nom
tanlang. Sanagich, oshirish, to’xtash sharti — hech biri kerak emas,
Python hammasini o’zi boshqaradi.
Matn ham ketma-ketlik
Matn (str) harflardan iborat ketma-ketlik, shuning uchun uning ustidan
ham for bilan yurish mumkin:
Bu stringlar darsida ko’rgan tushunchamizni davom ettiradi: matn — belgilar to’plami.
range — sonlar ketma-ketligi
Ko’pincha ro’yxat emas, shunchaki “0 dan 9 gacha” kabi sonlar kerak
bo’ladi. range aynan shuni yasaydi:
Ikki muhim nuqta: range(5) 0 dan boshlaydi va 5 gacha, lekin 5 ni
qo’shmaydi — ya’ni 0, 1, 2, 3, 4. Jami 5 ta son. Bu boshlovchilar uchun
kutilmagan tuyuladi, lekin tez odat bo’ladi.
range ni boshqarish: boshlanish va qadam
range ga uch xil ko’rinishda murojaat qilinadi:
| Yozuv | Ma’nosi | Natija |
|---|---|---|
range(5) |
0 dan 5 gacha | 0 1 2 3 4 |
range(2, 6) |
2 dan 6 gacha | 2 3 4 5 |
range(0, 10, 2) |
0 dan 10 gacha, 2 qadam | 0 2 4 6 8 |
Uchinchi son — qadam: har safar qancha oshirish. Manfiy qadam bilan teskari sanash ham mumkin:
for va while — qaysi biri qachon
Ikkalasi ham takrorlaydi, lekin ishlatilishi farq qiladi:
for— takror soni yoki ketma-ketlik oldindan ma’lum bo’lganda (ro’yxat elementlari, 1 dan 100 gacha sonlar).while— takror qachon tugashi noaniq bo’lganda (to’g’ri parol kiritilguncha, o’yin tugaguncha).
Ko’pchilik hollarda for qulayroq va xavfsizroq, chunki u o’zi to’xtaydi —
cheksiz sikl xavfi kam.
Amaliy mashq
Ko’paytirish jadvalini chiqaring:
forvarange(1, 11)bilan 7 ning jadvalini chiqaring;- har qatorni f-string bilan “7 x 3 = 21” ko’rinishida yozing;
rangega qadam qo’shib, faqat juft ko’paytmalarni chiqaring;- bir matn ustidan
forbilan yurib, har harfni alohida qatorda chiqaring.
range(1, 11) da 11 chiqmasligini tekshiring — chegara nega shunday?
Qisqacha xulosa
forketma-ketlik (ro’yxat, matn,range) ustidan element-element yuradi; sanagichni o’zi boshqaradi.range(n)— 0 danngacha,nkirmaydi.range(a, b)—adanbgacha.range(a, b, qadam)— qadam bilan.- Manfiy qadam (
range(5, 0, -1)) teskari sanaydi. for— takror soni ma’lum bo’lganda;while— noaniq bo’lganda.- Oxirgi chegara doim kirmaydi — 5 ni ham kerak bo’lsa
range(1, 6).
Keyingi darsda ro’yxat (list) bilan chuqurroq ishlashni o’rganamiz — bir nechta qiymatni bitta joyda saqlash usuli.