Pythonda for loop. Sintaksis, ro'yxatni takrorlash, sindirish, davom ettirish va boshqa xususiyatlar

ЦPython i uchun ikl pastadir while - bayonotlar dasturiy ta'minot til, aynan: takrorlash operatorlari, ruxsating kodni takrorlang berilgan raqam Vaqt.

Цikl uchun - сintaksis

Yuqorida aytib o'tilganidek, cPython da include for iteratorga asoslanganй tsikl bo'yichatenglik. u harakatlar Tuple elementlari bo'yicha и ro'yxat, so'zlar kalitlari va boshqa takrorlanadigan ob'ektlar.

Python’da sikl for kalit so‘zi bilan boshlanadi, undan keyin berilgan ketma-ketlikda keyingi obyektning qiymatini saqlaydigan ixtiyoriy o‘zgaruvchi nomi keladi. Pythonda for…in umumiy sintaksisi quyidagicha ko'rinadi:

uchun: else:      

komponentlar "ketma-ketliklar" ro'yxatda keltirilgan birin ketin tsikl o'zgaruvchisi. Toʻgʻrirogʻi, o'zgaruvchan nuqtalar bunday elementlar. Hamma uchun ulardan “harakat” bajariladi.

Muayyan misol bilan Python-da oddiy for loop:

>>> tillari = ["C", "C++", "Perl", "Python"] >>> tillarda x uchun: ... print(x) ... C C++ Perl Python >>>

else bloki alohidath. Agar a dasturchiыish с Perl tanishы u bilan, ekan o'zaro aloqada bo'lganlar uchun с C va C++ - bu yangilik. Semantik jihatdan vazifalari тxuddi shunday loop.

Faqat tsikl break operatori tomonidan “to'xtatilmaganda” bajariladi. Ya'ni, barcha elementlar belgilangan ketma-ketlikdan o'tgandan keyingina bajariladi.

Pythonda break operatori – break

Agar dasturda for tsikli bo'lsa kerak to'xtatishThe break bayonoti, he to'laketadiva dastur Oqim bo'ladi davomibolmoq holda aktivlashtirish boshqasidan.

Odatdagidan kura ko'proq pythondagi iboralarni buzinguytsya shartli bayonotlar bilan.

edles = ["chops", "chöfte", "tuxum", "yong'oq"] yeyiladigan taomlar uchun: agar oziq-ovqat == "chuchvara": print("Men köfte yemayman!") break print("Ajoyib, mazali " + ovqat) boshqa: print("Chempalar bo'lmagani yaxshi!") print("Kechki ovqat tugadi.")

Agar siz ushbu kodni ishga tushirsangiz, quyidagi natijani olasiz:

Ajoyib, mazali pirzola. Men chuchvara yemayman! Kechki ovqat tugadi.

Biz "köfte" ni mavjud ma'lumotlar ro'yxatidan olib tashlaymiz va quyidagilarni olamiz:

Zo'r, mazali pirzola Zo'r, mazali tuxum Zo'r, mazali yong'oqlar Yaxshiyamki, köfte yo'q edi! Kechki ovqat tugadi.

python skip operatori - davom eting

Aytaylik, foydalanuvchining bunday mahsulotlarga bo'lgan antipatiyasi ularning iste'molidan butunlay voz kechadigan darajada emas. Natijada, tsikl operator bilan davom etadi continue. Quyidagi skript bayonotdan foydalanadi continue, "Dampling kontakt" bo'yicha ro'yxat bo'ylab takrorlashni davom ettirish uchun.

edles = ["chops", "chuchvara","tuxum","yong'oq"] yeyiladigan taomlar uchun: if food == "chuchvara": print("Men köfte yemayman!") davom et print("Ajoyib, mazali " + taom) # bu taomdan lazzatlanish uchun kod bo'lishi mumkin :-) aks holda: print("Men köftedan nafratlanaman!") print("Kechki ovqat tugadi.")

Pastki qator:

Ajoyib, mazali pirzola. Men chuchvara yemayman! Ajoyib, mazali tuxumlar Ajoyib, mazali yong'oqlar Men köftedan nafratlanaman! Kechki ovqat tugadi.

range() funksiyasi bilan roʻyxatlarni takrorlash

Agar siz roʻyxat indekslariga kirmoqchi boʻlsangiz, bu maqsadda for loopidan qanday foydalanish aniq emas. Barcha elementlarga kirish mumkin, lekin element indeksiga kirish imkoni bo'lmaydi. Biroq, element indeksiga ham, elementning o'ziga ham kirish usuli mavjud. Shu maqsadda funktsiyadan foydalaniladi range() uzunlik funksiyasi bilan birlashtirilgan len():

fibonachchi = [0,1,1,2,3,5,8,13,21] i diapazonidagi(len(fibonachchi)): print(i,fibonachchi[i])

Qabul qiling:

0 0 1 1 2 1 3 2 4 3 5 5 6 8 7 13 8 21

Diqqat! Qo'llashda len() к list or tuple, berilgan ketma-ketlik elementlarining mos keladigan soni olinadi.

Ro'yxatlarni takrorlashning qiyinchiliklari

Ro'yxatni takrorlashda, tsikl tanasida ro'yxat dinamikasidan qochish tavsiya etiladi. Aniqlik uchun biz quyidagi variantni taklif qilishimiz mumkin:

ranglar = ["qizil"] i uchun ranglarda: agar i bo'lsa == "qizil": ranglar += ["qora"] agar i == "qora" bo'lsa: ranglar += ["oq"] chop etish(ranglar)

Murojaat qilganda nima bo'ladi print(colours)?

['qizil', 'qora', 'oq']

Bunga yo'l qo'ymaslik uchun, quyidagi misolda bo'lgani kabi, tilim yordamida nusxa bilan o'zaro ta'sir qilish tavsiya etiladi:

ranglar = ["qizil"] i uchun ranglarda[:]: agar i bo'lsa == "qizil": ranglar += ["qora"] agar i == "qora": ranglar += ["oq"] chop etish(ranglar )

Natija:

['Qizil qora']

Roʻyxat oʻzgartirildi colours, lekin bu harakat loopga ta'sir qilmadi. Takrorlash kerak bo'lgan ma'lumotlar tsiklning bajarilishi davomida o'zgarishsiz qoldi.

Python 3 da sanab o'ting

Enumerate o'rnatilgan Python funktsiyasidir. Aksariyat yangi boshlanuvchilar, shuningdek, ba'zi tajribali dasturchilar uning mavjudligini bilishmaydi. Bu sizga tsiklning takrorlanishini avtomatik ravishda hisoblash imkonini beradi. Masalan:

hisoblagich uchun, enumerate(some_list)dagi qiymat: chop etish(hisoblagich, qiymat)

vazifa enumerate ixtiyoriy argumentni ham oladi (boshlang'ich qiymati, sukut bo'yicha 0). Bu esa uni yanada samaraliroq qiladi.

my_list = ['olma', 'banana', 'cherry', 'shaftoli'] c uchun, raqamlashdagi qiymat(mening_listim, 1): chop etish(c, qiymat) # Natija: # 1 olma # 2 banan # 3 olcha # 4 shaftoli

Leave a Reply