Yuklanmoqda...

5-Ma'ruza: Sikl operatorlari.

    Dasturlash davomida kodimizning biror qismini bir necha marta takrorlash talab etilishi mumkin. Misol uchun, ro'yxat ichidagi har bir elementni alohida qatordan konsolga chiqarish, yoki bo'lmasa har bir elementni kvdartaga oshirish va hokazo.

Mana shunday vaziyatlarda bizga for operatori yordam beradi. Dasturlashda bu tsikl (loop) deb ataladi.

Keling quyidagi misolni ko'ramiz. Bizda mehmonlar ro'yxati bor, biz har bir mehmonning ismini yangi qatordan chiqarmoqchimiz. Buning uchun quyidagi kodni yozamiz:

mehmonlar = ['Ali','Vali','Hasan', 'Husan','Olim']

for mehmon in mehmonlar:

print(mehmon)

Natija:

Ali

Vali

Hasan

Husan

Olim

Keling, kodni tahlil qilaylik.

"For" so'zi ingliz tilidan "uchun" deb tarjima qilinadi.

Yuqoridagi kodni oddiy tilga tarjima qilsak "Mehmonlar ro'yxatidagi har bir mehmon uchun uning ismini konsolga chiqar" degan ma'noni beradi.

 

for QANDAY ISHLAYDI

Keling yana bir misol ko'raylik.

mehmonlar = ['Ali','Vali','Hasan', 'Husan','Olim']

for mehmon in mehmonlar:

print(f"Hurmatli {mehmon}, sizni 20 Dekabr kuni nahorga oshga taklif qilamiz")

print("Hurmat bilan, Palonchiyevlar oilasi")

Natija:

    Yuqoridagi kodda 2-qator bu tsikl boshi deyiladi. Aynan shu qator kodimiz nech marta takrorlanishini aniqlaydi. Bizning holatimizda tsikl mehmonlar ro'yxati ichidagi elementlar tugagunga qadar takrorlanadi. Tsikl boshlanishi ikki nuqta (:) bilan tugaydi. Undan keyingi 3 va 4-qatorlar bu tsiklning badani deyiladi.

Tsikl badani surilish (indentation) bilan ajratiladi, ya'ni tsiklning takrorlanuvchi qismi asosiy koddan bir muncha o'ngroqqa surilgan bo'ladi. Agar biz mana shu surilishni tark qilsak kodimiz xato beradi:

mehmonlar = ['Ali','Vali','Hasan', 'Husan','Olim']

for mehmon in mehmonlar:

print(f"Hurmatli {mehmon}, sizni 20 Dekabr kuni nahorga oshga taklif qilamiz")

print("Hurmat bilan, Palonchiyevlar oilasi\n")

Natija: IndentationError: expected an indented block

    Ko'rib turganingizdek for dan keyingi qatorni o'ngga surmaganimiz uchun indentation error (surishda xatolik) degan xabarni oldik.

Shunigdek, ko'pchilik yo'l qo'yadigan yana bir xato, qo'shimcha qatorlarni surish esdan chiqishi:

mehmonlar = ['Ali','Vali','Hasan', 'Husan','Olim']

for mehmon in mehmonlar:

print(f"Hurmatli {mehmon}, sizni 20 Dekabr kuni nahorga oshga taklif qilamiz")

print("Hurmat bilan, Palonchiyevlar oilasi\n")

Natija:

    Yuqoridagi kodimizda 4-qatorni o'ngga surmaganimiz uchun, Python bu qatorni tsikl tashqarisida deb qabul qildi va faqatgina 1 marta, tsikl tugaganidan so'ng bajardi.

Huddi shu kabi agar takrorlanishi kerak bo'magan kodni tsikldan so'ng o'ngga surib qo'ysak Python bu qatorni tsiklning tarkibida deb hisoblab, qayta-qayta bajaradi:

mehmonlar = ['Ali','Vali','Hasan', 'Husan','Olim']

for mehmon in mehmonlar:

print(mehmon)

print(mehmonlar) # bu qator tsikl tashqarisida bo'lishi kerak edi

    Yuoqirdagi misolda 5-qator o'ngga surilib qolgani uchun Python bu qatorni ham bir necha bor takrorlab, konsolga chiqardi. To'g'ri kod quyidagicha bo'ladi:

mehmonlar = ['Ali','Vali','Hasan', 'Husan','Olim']

for mehmon in mehmonlar:

print(mehmon)

print(mehmonlar)

 

for YORDAMIDA SONLI RO'YXATLAR BILAN ISHLASH

Keling quyidagi misolni ko'ramiz

sonlar = list(range(1,11))

for son in sonlar:

print(f"{son} ning kvadrati {son**2} ga teng")

Natija:

for yordamida yangi ro'yxat ham shakllantirish mumkin:

sonlar = list(range(11)) # 1 dan 10 gacha sonlar ro'yxatini yaratamiz

sonlar_kvadrati =[] # bo'sh ro'yxat yaratamiz

for son in sonlar: # sonlar dagi har bir son uchun

sonlar_kvadrati.append(son**2) # uning kv.ni hisoblab, sonlar_kvadrati ga yuklaymiz

print(sonlar)

print(sonlar_kvadrati)

Natija:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 

for va input()

for operatori va input() funktsiyasini jamlab, ro'yxatni foydalanuvchidan olingan qiymatlar bilan to'ldirish mumkin:

dostlar = [] # bo'sh ro'yxat

print("5 ta eng yaqin do'stingiz kim?")

for n in range(5): # n bu yerda 0 dan 4 gacha qiymatlar oladi

dostlar.append(input(f"{n+1}-do'stingizning ismini kiriting: "))

print(dostlar)

Natija:

Kodni tahlil qilamiz:

for tsikli har qanday dasturlash tilining eng muhim qismlaridan hisoblanadi va biz bu operatoraga hali takror-takror qaytamiz.