#20 QIYMAT QAYTARUVCHI FUNKSIYA
Funksiyadan qiymat qaytarishni o'rganamiz
Avvalgi darsimizda yaratgan barcha funksiyalarimiz konsolga ma'lumot chiqarayotgan edi. Aslida, aksar holatlarda bu g'ayritabiiy. Sababi, dasturchi sifatida biz konsolga chiqqan ma'lumotdan unumli foydalana olmaymiz. Konsoldagi qiymatni o'zgaruvchiga yuklab, undan kelajakda foydalanib ham bo'lmaydi. Mana shunday holatlarda, funksiyadan unumli foydalanish uchun undan biror qiymatni qaytarish maqsadga muvofiq bo'ladi.
FUNKSIYADAN ODDIY QIYMAT QAYTARISH
Keling ism
va familiya
degan parametrlarni olib, toliq_ism
qaytaradigan sodda funksiya yasaymiz.
Yuqoridagi funksiyamizga ahamiyat bersangiz, uning badanida endi print()
funksiyasi yo'q. Buning o'rniga, funksiyamiz return
operatori yordamida toliq_ism
degan o'zgaruvchining qiymatini qaytaradi.
Endi funksiyadan to'g'ri foydalanish uchun u qaytargan qiymatni biror o'zgaruvchiga yuklashimiz kerak:
Yuqoridagi kodlarni bajarganimizda konsolga hech narsa chiqmaydi. talaba1 va talaba2 o'zgaruvchilarining qiymatini ko'rish uchun esa print() funksiyasidan foydalanamiz.
Natija: Darsga kelmagan talabalar: Olim Hakimov va Hakim Olimov
Demak, qiymat qaytaradigan funksiyaning afzalligi shundaki, biz bu qiymatlardan keyin ham bemalol foydalanishimiz mumkin.
Funksiya ichidagi o'zgaruvchilar mahalliy yoki ichki o'zgaruvchilar deyiladi (local variables). Ichki o'zgaruvchilar faqatgina funksiya ichida mavjud bo'ladi, ularga tashqaridan murojat qilib bo'lmaydi. Shuning uchun ham funksiya o'zgaruvchi emas qiymat qaytaradi.
IXTIYORIY ARGUMENTLAR
Avvalgi darsizmida funksiyalarga standart parametr berishni ko'rgan edik. Huddi shu usul bilan, ba'zi argumentlarni ixtiyoriy qilishimiz mumkin. Ya'ni funksiya ishlashi uchun bu agrumentarni kiritish majburiy emas, ixtiyoriy bo'ladi.
Keling avvalgi funksiyamizni o'zgartiramiz va unga yana bitta otasiningismi degan paramter qo'shamiz, lekin bu parametr ixtiyoriy bo'ladi. Buning uchun funksiya yaratishda otasining_ismi=''
deb yozib ketamiz.
Yuqoridagi funksiyani tahlil qiladigan bo'lsak, 3-qatorda biz otasiningismi parametri bo'sh yoki yo'qligini tekshiramiz. Pythonda if
dan so'ng bo'sh bo'lmagan matn (string) yozsak, bu shart True
qaytaradi. Demak, bu ixtiyoriy parametr kiritilgani yoki yo'qligiga qarab, funksiyamiz turlicha qiymat qaytaradi.
Natija: Darsga kelmagan talabalar: Olim Hakimov va Hakim Abrorovich Olimov
FUNKSIYADAN LUG'AT QAYTARAMIZ
Funksiyadan sodda qiymat emas, ro'yxat, lu'gat va boshqa ma'lumot turlarini ham qaytarishimiz mumkin. Quyidagi funksiya ham mashina haqidagi ma'lumotlarni jamlab, ularni lug'at ko'rinishida qaytaradi:
E'tibor bering, narhi
nomli parametrga None
standart qiymatini berib ketdik. None
Pythonda mavjud emas ma'nosini beradi, va if
yordamida tekshirganda False
mantiqiy qiymatini qaytardi.
Quyidagi kodni tahlil qilishni sizga vazifa sifatida qoldiramiz:
FUNKSIYADAN RO'YXAT QAYTARAMIZ
Biz avvalroq range()
funksiyasi bilan tanishgan edik. Bu funksiya 2 ta son qabul qilib, shu ikki son orali'g'idagi sonlarni qaytaradi. Keling biz oraliq()
degan yangi funksiya yaratamiz. range()
dan farqli ravishda, funksiyamiz 2 son oralig'idagi sonlarni ro'yxat ko'rinishida qaytarsin.
Funksiyani tekshiramiz:
Yuqoridagi funksiyaga uchinchi, qadam
deb nomlangan ixtiyoriy parameterni qo'sha olasizmi?
Natija: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
FUNKSIYALARNI TSIKLDA ISHLATISH
Funksiyalarni takrorlash uchun tsikldan foydalanishimiz mumkin. Quyidagi misolda biz while
yordamida avvalroq yaratgan avto_info
funksiyamizni bir necha bor chaqiramiz va salondagi avtolar ro'yxatini shakllantiramiz. Bunda, ro'yxatning har bir elementi avto_info
funksiyasidan qaytgan lug'at bo'ladi.
Yuqoridagi funksiyani Pythonda bajarib kor'ing. Ro'yxatga bir necha qiymatlar qo'shing. Natijalarni konsolga chiroyli qilib chiqaring:
AMALIYOT
Foydanaluvchidan ismi, familiyasi, tug'ilgan yili, tug'ilgan joyi, email manzili va telefon raqamini qabul qilib, lug'at ko'rinishida qaytaruvchi funksiya yozing. Lug'atda foydalanuvchu yoshi ham bo'lsin. Ba'zi argumentlarni kiritishni ixtiyoriy qiling (masalan, tel.raqam, el.manzil)
Yuqoridagi funksiyani
while
yordamida bir necha bor chaqiring, va mijozlar degan ro'yxatni shakllantiring. Ro'yxatdagi mijozlar haqidagi ma'lumotni konsolga chiqaring.Uchta son qabul qilib, ulardan eng kattasini qaytaruvchi funksiya yozing
Foydalanuvchidan aylaning radiusini qabul qilib olib, uning radiusini, diametrini, perimetri va yuzini lug'at ko'rinishida qaytaruvchi funksiya yozing
Berilgan oraliqdagi tub sonlar ro'yxatini qaytaruvchi funksiya yozing (tub sonlar —faqat birga va o'ziga qoldiqsiz bo'linuvchi, 1 dan katta musbat sonlar)
Foydalanuvchidan son qabul qilib, shu son miqdoricha Fibonachchi ketma-ketligidagi sonlar ro'yxatni qaytaruvchi funksiya yozing. Ta’rif: Har bir hadi o’zidan oldingi ikkita hadning yig’indisiga teng bo’lgan ketma-ketlik Fibonachchi ketma-ketligi deyiladi. Bunda boshlang’ish had ko’pincha 1 deb olinadi.
1, 1, 2, 3, 5, 8, 13, 21, 34, 55,...
JAVOBLAR
Last updated