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.
1
def toliq_ism_yasa(ism, familiya, otasining_ismi=''):
2
"""Toliq isma qaytaruvchi funksiya"""
3
if otasining_ismi: # otasining_ismi mavjudligini tekshiramiz
4
toliq_ism = f"{ism} {otasining_ismi} {familiya}"
5
else:
6
toliq_ism = f"{ism} {familiya}"
7
return toliq_ism.title()
Copied!
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.
1
talaba1 = toliq_ism_yasa('olim','hakimov') #otasining_ismi kiritilmadi
2
talaba2 = toliq_ism_yasa('hakim','olimov','abrorovich')
3
print(f"Darsga kelmagan talabalar: {talaba1} va {talaba2}")
Copied!
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:
1
def avto_info(kompaniya, model, rangi, korobka, yili, narhi=None):
2
avto = {'kompaniya':kompaniya,
3
'model':model,
4
'rang':rangi,
5
'korobka':korobka,
6
'yil':yili,
7
'narh':narhi}
8
return avto
Copied!
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:
1
avto1 = avto_info('GM','Malibu','Qora','Avtomat',2018)
2
avto2 = avto_info('GM','Gentra','Oq','Mexanika',2016,15000)
3
avtolar = [avto1, avto2]
4
print('Onlayn bozordagi mavjud avtomashinalar:')
5
for avto in avtolar:
6
if avto['narh']:
7
narh = avto['narh']
8
else:
9
narh = "Noma'lum"
10
print(f"{avto['rang']} {avto['model']}. Narhi: {narh}")
Copied!
Natija
Do'stlaringiz bilan baham: |