Masala. for operatori yordamida 0 dan 4 gacha bo’lgan sonlarni oynaga chiqarish kodi yozilsin.
for x in range(5):
print(x)
Natija:
0
1
2
3
4
Ushbu natijadan range(5)funksiyasi sikldagi takrorlanishlarni 5 marta, ya’ni 0 dan 4 gacha sodir etdi.
Masala. yig’indini hisoblash dasturi tuzilsin.
Ma’lumki, yig’indining yoyilgan ko’rinishi quyidagich bo’lar edi.
# Yigindi
import math
n = int(input('n sonni kiriting = '))
s = 0
for k in range(n):
s = s + ((100-k)**2)/(math.sin(k)+math.pow(3,k))
print('s=',s)
Natija:
n sonni kiriting = 14
s= 14037.355359587267
range()funksiyasi 0 dan boshlanadi, lekin uning boshlang’ich qimatini o’zgartirish, funksiyadagi ikkinchi argumet yordamida amalga oshiriladi. Masalan,
for x in range(2, 5):
print(x)
Natija:
2
3
4
Natijadan range(2,5)funksiyasi sikldagi takrorlanishlarni 3 marta, ya’ni 2 dan 4 gacha sodir etdi.
Masala. Fibonachchi ketma-ketligining n hadini topish dasturi tuzilsin.
Ma’lumki, Fibonachchi ketma-ketligining birinchi hadi 1 ga, ikkinchi hadi ham 1 ga teng bo’lib, qolgan hadlari o’zidan avvalgi ikkita hadlarining yig’indisiga teng bo’lar edi. Dastui tuzamiz.
# Fibonachchi n xadini topshish dasturi
avvalgi = 1
keyingi = 1
n = int(input('nechanchi xadni topish zarur n = '))
if (n == 1) or (n == 2): print (n, ' - xad 1 ga teng')
else:
for i in range(3, n+1):
joriy = avvalgi + keyingi
avvalgi = keyingi
keyingi = joriy
print (n, "chi xad", joriy, 'ga teng')
Dasturda ketma-ketlikning birinchi va ikkinchi hadlari 1 ga teng bo’lganligi uchun ularni 1 avvalgi va keyingi hadlarini 1 ga teng qilib olindi. Ketme-ketlikdagi topilishi kerak bo’lgan n – had natural son bo’lganligi uchun uning tipi int butun tipli qilib olindi.
Ketma – ketlikning birinchi va ikkinchi hadlari 1 ga teng bo’lganligi uchun n == 1 ga yoki n == 2 bo’lsa javob 1 ga tengligini oynaga chiqarib, dastur ishi tugallanadi, aks holda sikl ochilib qidirish uchinchi haddan boshlanadi. Tsiklning ohirgi hadi n ga teng bo’lganligi uchun siklning oxirgi hadi n+1 qilib olinadi, chunki range() funksiyasi 0 dan boshlab n-1 gacha sonlar bilan ishlaydi. Tsikl tanasidagi almashtirishlar n hadgacha davom ettiriladi.
range()funksiyasida uchinchi parametr ko’rsatilmasa sikl parametrini 1 ga orttiradi. Agar uchinchi parametr ko’rsatilsa sikl boshida ko’rsatilgan qadam qiymati ketma-ket qo’shilib boradi va sikl oxiridagi songacha davom ettiriladi. Masalan,
for x in range(2, 25, 5):
print(x)
Natija:
2
7
12
17
22
Masala. 100 dan 200 gacha barcha 3 ga karrali bo’lgan sonlar yig’indisini topish dasturi tuzilsin.
Masalaga dastur tuzishdan avval 100 soni 3ga bo’linmaganligi uchun 100 dan keyingi birinchi uchga bo’linadigan sonni topib olamiz, u 102 ga teng. Shuning uchun ketma ketlikning birichi hadi 102 ga, keyingilari 102 + 3 = 105, 105 + 3 = 108, ... larga teng bo’ladi. Shuning uchun ketma ketlikning birinchi hadi 102 ga, oxirgi xadi 200 gacha, siklning o’zgarish qadami, ya’ni sikl parametri 3 ga teng bo’ladi.
# yigindi 3 ga karrali
s = 0
for x in range(102, 200, 3): s = s + x
print ('Yigindi s q', s)
Natija:
Yigindi s = 4950
Masala. 0 dan n gacha bo’lgan sonlar ichidan 6 ga va 7 ga bo’linadigan sonlarni oynaga chiqarish dasturi tuzilsin.
n = int(input('n sonni kiriting = '))
m = int(input('m sonni kiriting = '))
for n in range(n,m):
if (n % 6 != 0) or (n % 7 != 0):
continue
print ( "Natija - ", n )
Natija:
n sonni kiriting = 100
m sonni kiriting = 200
Natija - 126
Natija - 168
For operatori bilan bir qatorda else operatoridan ham foydalanish imkoni berilgan. Bu operatordan sikl tugaganidan so’ng bajarilishi kerak bo’lgan dastur qismi yoziladi. Masalan:
s = 0
for x in range(102, 200, 3):
s = s + x
else:
print ('Yigindi s q', s)
print ('Tsikl yakunlandi.')
Natija:
Yigindi s = 4950
Tsikl yakunlandi.
Do'stlaringiz bilan baham: |