Mavzu: Algoritmning xossalari, yozilish usullari va turlari


Download 147.5 Kb.
bet4/7
Sana06.04.2023
Hajmi147.5 Kb.
#1331668
1   2   3   4   5   6   7
Bog'liq
Pythonda funksiyalar

KALIT SO'Z BILAN UZATISH
Yuqoridagi kabi holatlarning oldini olish uchun argumentlarni parametr nomi bilan qo'shib uzatishimiz mumkin. Buning uchun funksiyaga o'zgartirish kiritish talab qilinmaydi.
yosh_hisobla(tugilgan_yil=1997, ism='olim')
Natija: Olim 23 yoshda
Yuoqirdagi misolda funksiyani chaqirishda biz parametrlar ketma-ketligiga rioya qilmagan bo'lsakda, argumentlarni parametr_nomi=qiymat ko'rinishida yozganimiz sababli funksiya to'g'ri ishladi.
Huddi shu kabi yuqoridagi toliq_ism funksiyasiga murojat qilishimiz mumkin:
toliq_ism(familiya='hakimov',ism='olim')
Natija:
Foydalanuvchi ismi: Olim
Foydalanuvchi familiyasi: Hakimov
Kalit so'z usulidan foydalanganda parametr nomi to'g'ri yozilganiga ahamiyat bering.
STANDART QIYMAT
Funksiya yaratishda, istalgan parametr uchun standart qiymat ko'rsatib ketishimiz mumkin. Agar foydalanuvchi shu parametr uchun qiymat (argument) kiritmasa, funksiya bajarilishi jarayonida standart qiymat ishlatiladi. Standart qiymatni funksiya yaratish vaqtidaparametr = qiymat ko'rinishida beriladi.
def yosh_hisobla(tugilgan_yil, joriy_yil=2020): # joriy yil uchun st.qiymat 2020
"""Foydalanuvchi tug'ilgan yilidan uning yoshini hisoblaydi"""
print(f"Siz {joriy_yil-tugilgan_yil} yoshdasiz")
Yuqoridagi misolda biz joriy_yil parametriga 2020 standart qiymatini berib ketdik.
Funksiya yaratishda, standart qiymatga ega parametrlar doim oxirida yozilishi kerak. Aks holda xatolik yuzaga keladi.
Keling avval funksiyani ikkala argument bilan chaqiramiz:
yosh_hisobla(1995,2020)
Natija: Siz 25 yoshdasiz
Endi esa faqat bitta argument (tugilgan_yil) bilan chaqiramiz:
yosh_hisobla(1993)
Natija: Siz 27 yoshdasiz
Bu safar foydalanuvchi joriy_yil ni kiritmagani sababli, standart qiymat, 2020 ishlatildi.
FUNKSIYAGA MUROJAT QILISHDA XATOLIKLAR
Funksiyalarga murojat qilishda turli xatoliklarga yo'l qo'shimiz tabiiy. Bunday holatlarda Python qaytargan xatoni sinchiklab o'qib, xato qayerdaligini topishimiz va uni to'g'rilashimiz zarur. Quyida men avvalroq yaratgan funksiyalarimizni xato usullar bilan chaqiraman. Xato nimada ekanini topa olasizmi?
def yosh_hisobla(tugilgan_yil, joriy_yil=2020):
"""Foydalanuvchi tug'ilgan yilidan uning yoshini hisoblaydi"""
print(f"Siz {joriy_yil-tugilgan_yil} yoshdasiz")
tyil = input("Tug'ilgan yilingizni kiriting: ")
yosh_hisobla(tyil)
Natija: TypeError: unsupported operand type(s) for -: 'int' and 'str'
def yosh_hisobla(tugilgan_yil, joriy_yil):
"""Foydalanuvchi tug'ilgan yilidan uning yoshini hisoblaydi"""
print(f"Siz {joriy_yil-tugilgan_yil} yoshdasiz")

yosh_hisobla(1993)
Natija: TypeError: yosh_hisobla() missing 1 required positional argument: 'joriy_yil'
def salom_ber():
"""Salom beruvchi funksiya"""
print("Assalomu alaykum!")

salom_ber('hasan')
Natija: TypeError: salom_ber() takes 0 positional arguments but 1 was given
def toliq_ism(ism, familiya):
"""Foydalanuvchi ism va familiyasini jamlab chiqaruvchi funksiya"""
print(f"Foydalanuvchi ismi: {ism.title()}\n"
f"Foydalanuvchi familiyasi: {familiya.title()}")
toliq_ism('olim hakimov')

Download 147.5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling