5-dars. Sikl operatorlari. For sikli. range() funksiyasi Reja - Sikl operatorlari.
- For sikli.
- range() funksi
Sikl operatorlari. Sikl – dastur qismining bir necha marta takror-takror bajarishidir. Sikl: - Ma`lum qadamlar sonidagi sikl
- Noma`lum qadamlar sonidagi sikl (shartli sikl)
for takrorlash operatori sintaksisi: for in :
Bu yerda:
– iterasiya mexanizmini qo’llovchi obyekt. Masalan: qator, ro’yxat, kortej, diapason, lug’at va boshqalar;
– har bir iterasiyada ushbu parameter orqali ketma-ketlik yoki lug’atning joriy elementiga yo’l ko’rsatiladi;
– ko’p marta bajariluvchi blok;
Agar sikl ichida break operatori ishlatilmasa, sikl bajarilishi tugashi bilan else instruksiyasi bajarilishiga o’tiladi. Bu blok majburiy emas.
Misol: So’zdagi harflarni saralash for s in "Assalomu alaykum": print(s, end=" ") else: print ("\nsikl bajarildi")
Natija:
A s s a l o m u a l a y k u m
sikl bajarildi
Misol. Ro’yxat va kortejni saralash for x in [1,2,3]: print(x,end=", ") #1, 2, 3, for y in (1,2,3): print(y,end=", ") #1, 2, 3, Misol. Lug’at elementlarini saralash >>> arr = {"х" : 1, "у" : 2, " z" : 3} >>> arr.keys () dict_keys ([ 'у ', 'х', 'z’]) >>>for key in arr.keys(): # keys () metodidan foydalanilmoqda print (key, arr [key] ) у 2 х 1 z 3 >>> for key in arr: # lug’atda iterasiyadan foydalanilmoqda print (key, arr [key]) у 2 х 1 z 3 range() va enumerate() funksiyalari Endi ro’yxat har bir elementini 2 ga ko’paytirib chop etamiz: arr = (1, 2, 3) for i in arr: i = i * 2 print (arr) # Natija: (1, 2, 3) Ko’rinib turibdiki, ko’paytma elementlarga ta’sir etmadi, ya’ni elementni o’ziga ta’sir etib bo’lmadi. Har bir elementga kirish range( ) funksiyasi yordamida amalga oshiriladi. U quyidagi formatga ega: range ([, ] [, ])
Birichi parametr boshlang’ich qiymatni aniqlaydi. Agar u ko’rsatilmasa, boshlang’ich qiymat 0 dan boshlanadi. Ikkinchi parameter tugash cheagarasini bildiradi. Bu parameter majburiydir. parametri ko’rsatilmasa qadam 1 deb qabul qilinadi.
Misol. range() funksiyasidan foydalanish misoli arr=[1,2,3] for i in range(len(arr)): arr[i]*=2 print(arr ) # Natija: [2, 4, 6] while takrorlash operatori while : < Orttirma > [else: ] While siklining bajarilish tartibi: 1. O’zgaruvchi- hisoblagich boshlang’ich qiymat o’zlashtiradi. 2. Shart tekshiriladi, agar rost bo’lsa sikl ichidagi instruksiya bajariladi, aks holda sikl yakunlanadi. 3. O’zgaruvchi- hisoblagich dagi parameter bo’yicha o’zgaradi. 4. 2 qadamga o’tiladi. 5. Agar sikl ichida break operatoridan foydalailmasa, sikl yakunlangach else bloki bajariladi. Bu blok majburiy emas. 1 dan 100 gacha sonlarni while sikldan foydalnib chop etamiz (4.11-misol). Misol. 1 dan 100 gacha sonlarni chop etish i = 1 # while i < 101 : # print(i) # i += 1 #
Eslatma! Agar orttirma ko’rsatilmasa, sikl cheksiz davom etadi. Cheksiz siklni to’xtatish uchun esa + klavish kombinasiayasdan foydalaniladi.
Misol. 100 dan 1 gacha sonlarni chop etish i = 100 while i: print (i, end=“; ”) i - = 1 Natija: misol. Ro’yxaty elementlarini saralsh arr = [1, 2, 3] i, count = 0, len(arr) while i arr[i]*=2 i+=1 print(arr) # Natija: [2, 4, 6] continue operatori. Siklning navbatdagi itersiyasiga o’tish continue operatori sikldagi barcha instruksiyalar bajarilmay, siklning navbatdagi iterasiyasiga o’tish imkonini beradi. Misol sifatida 1 dan 100 gacha bo’lagan butun sonlardan 5 dan 10 gacha oraliqqa kirmaydigan butun sonlar chop etishni ko’rib chiqamiz for i in range (l, 101): if 4 < i < 11: continue # siklning keying iterasiyasiga o’tamiz print (i) break operatori. Siklni to’xtatish break operatori sikl bajarilishini zudlik bilan to’xtatish imkonini beradi. 1 dan l00 butun sonlarni chop etishning yana bir usulini ko’rib chiqamiz
i = 1
while True:
if i > 100:
break # siklni to’xtatish
print (i)
i + = 1
Bu yerda biz shart qiymati sifatida True ni ko’rsatdik. Bu holda sikl cheksiz davom etadi. Biroq break operatoridan foydalanilgani sababli faqat 100 gacha sonlar chop etiladi.
Misol. Noaniq miqdordagi sonlar yig’indisini hisoblash print("Natiaja olish uchun 'stop' so’zini kiriting") summa=0 while True: х=input("Sonni kiriting:") if х == "stop": break х=int(х) summa+=х print("Sonlar yig’indisi: ", summa)
Do'stlaringiz bilan baham: |