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:

Python

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:

Python

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:

Python

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:

Python

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:

  1. for va range(1, 11) bilan 7 ning jadvalini chiqaring;
  2. har qatorni f-string bilan “7 x 3 = 21” ko’rinishida yozing;
  3. range ga qadam qo’shib, faqat juft ko’paytmalarni chiqaring;
  4. bir matn ustidan for bilan yurib, har harfni alohida qatorda chiqaring.

range(1, 11) da 11 chiqmasligini tekshiring — chegara nega shunday?

Qisqacha xulosa

  • for ketma-ketlik (ro’yxat, matn, range) ustidan element-element yuradi; sanagichni o’zi boshqaradi.
  • range(n) — 0 dan n gacha, n kirmaydi. range(a, b)a dan b gacha. 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.

Bu dars foydali bo'ldimi?

marta ko'rildi