#09 FOR TAKRORLASH OPERATORI
FOR operatori bilan ishlashni o'rganamiz
for BILAN TANISHAMIZ
for BILAN TANISHAMIZDasturlash 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:
Natija:
Ali
Vali
Hasan
Husan
Olim
Keling, kodni tahlil qilaylik.
1-qatorda biz
mehmonlardegan ro'yxat yaratdik va uni mehmonlarning ismi bilan to'ldirdik.2-qatorda
fortsiklini bohladik. Bu qator Pythongamehmonlardegan ro'yxatdan har bir elementini olib uni yangi,mehmondegan o'zgaruvchiga yuklashni buyuryapti (o'zgaruvchiga istalgan nom berishingiz mumkin. Biz tushunarli bo'lishi uchunmehmondeb atadik)3-qatorda biz
mehmondegan o'zgaruvchining qiymatini konsolga chiqardik. Bu tsikl tomehmonlarro'yxatida elementlar tugagunga qadar takrorlanadi.
Yuqoridagi kodni oddiy tilga tarjima qilsak "Mehmonlar ro'yxatidagi har bir mehmon uchun uning ismini konsolga chiqar" degan ma'noni beradi.
for QANDAY ISHLAYDI
for QANDAY ISHLAYDIKeling yana bir misol ko'raylik.
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:
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:
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:

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:
for YORDAMIDA SONLI RO'YXATLAR BILAN ISHLASH
for YORDAMIDA SONLI RO'YXATLAR BILAN ISHLASHKeling quyidagi misolni ko'ramiz
Natija:

for yordamida yangi ro'yxat ham shakllantirish mumkin:
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 va input()for operatori va input() funktsiyasini jamlab, ro'yxatni foydalanuvchidan olingan qiymatlar bilan to'ldirish mumkin:
Natija:

Kodni tahlil qilamiz:
1-qatorda bo'sh
dostlarro'yxatini yaratdik2-qatorda ekranga
"5 ta eng yaqin do'stingiz kim?"degan xabarni chiqardik3-qatorda tsiklni boshladik.
range(5)funktsiyasi 0 dan 5 gacha sonlar ketma-ketligini yaratadi(0,1,2,3,4)tsikl esanshularning har biriga teng bo'lib chiqquncha davom etadi.4-qatorda tsikl badani kelgan. Bu yerda biz foydalanuvchidan
n+1do'stingizni kiriting deb so'radik. Nima uchunn+1(nemas)? Sababin0 dan 4 gacha qiymatlarni oladi, foydalanuvchiga tushunarli bo'lishi uchun esa biz "0-do'stingizni ismini kiriting:" deb emas, balkin+1ya'ni 1-ismni kiriting deb murojat qilyapmiz.5-qatorda shakllangan ro'yxatni konsolga chiqardik.
for tsikli har qanday dasturlash tilining eng muhim qismlaridan hisoblanadi va biz bu operatoraga hali takror-takror qaytamiz.
AMALIYOT
Kamida 5 elementdan iborat ismlar degan ro'yxat tuzing, va ro'yxatdagi har bir ismga takrorlanuvchi xabar yozing
Yuoqirdagi tsikl tugaganidan so'ng, ekranga "Kod
nmarta takrorlandi" degan xabarni chiqaring (no'rniga kod necha marta takrorlanganini yozing)

10 dan 100 gacha bo'lgan toq sonlar ro'yxatini tuzing. Ro'yxatning xar bir elementining kubini yangi qatordan konsolga chiqaring.

Foydalanuvchidan 5 ta eng sevimli kinolarini kiritshni so'rang, va
kinolardegan ro'yxatga saqlab oling. Natijani konsolga chiqaring.Foydalanuvchidan bugun nechta odam bilan uchrashganini (suhbatlashganini) so'rang, va har bir suhbatlashgan odamning ismini birma-bir so'rab ro'yxatga yozing. Ro'yxatni konsolga chiqaring.

JAVOBLAR
Last updated
Was this helpful?