Print("Assalom alaykum")



Download 10,21 Mb.
bet30/58
Sana28.06.2022
Hajmi10,21 Mb.
#713027
1   ...   26   27   28   29   30   31   32   33   ...   58
Bog'liq
Mohirdev.uz...

# infinite loop
son = 0
while son<10:
if son%2!=0:
continue
else:
print(son)
Bu kod ham abadiy davom etadi, lekin nima uchun?
In [ ]:
son = 1
while son>0:
son += 1
if son%2!=0:
continue
else:
print(son)
Yuqoridagi kodda esa xato shart tufayli (son>0) kod abadiy aylanadi.
*DIQQAT! Abadiy tsikl bajarilishini to'xtatish uchun konsolda Ctrl+C tugmasini bosing

AMALIYOT


  1. Foydalanuvchidan yaxshi ko'rgan kitoblarini kiritishni so'rang. Foydalanuvchi stop so'zini yozishi bilan dasturni to'xtating

  2. Muzeyga chipta narhi foydalanuvchining yoshiga bog'liq: 7 dan yoshlarga - 2000 so'm, 7-18 gacha 3000 so'm, 18-65 gacha 10000 so'm, 65 dan kattalarga bepul. Shunday while tsikl yozingki, dastur foydalanuvchi yoshini so'rasin va chipta narhini chiqarsin. Foydalanuvchi exit yoki quit deb yozganda dastur to'xtasin (ikkita shartni ham tekshiring).

    • Yuqoridagi dasturni turli usullarda yozib ko'ring (break, ishora, yoki shart tekshirish)

  3. Quyidagi dasturda bir nechta mantiqiy xatolar bor. Jumladan, xusisiy holatlarda tsikl abadiy qaytarilib qolmoqda. Xatolarni to'g'rilay olasizmi?

In [ ]:
savol ="Kiritilgan sonning ildizini qaytaruvchi dastur.\n"
savol += "Musbat son kiriting "
savol += "(dasturni to'xtatish uchun 'exit' deb yozing): "


while True:
qiymat = input(savol)
if qiymat<0:
continue
elif qiymat=='Exit':
break
else:
ildiz = float(qiymat)**(0.5)
print(f"{qiymat} ning ildizi {ildiz} ga teng")

JAVOBLAR


In [3]:
savol = "Sevgan kitobingizni kiriting"
savol += "(barcha kitoblarni kiritib bo'lgach 'exit' deb yozing): "


while True:
kitob = input(savol)
if kitob == 'exit':
break
print('Rahmat!')
Sevgan kitobingizni kiriting(barcha kitoblarni kiritib bo'lgach 'exit' deb yozing): Quron Sevgan kitobingizni kiriting(barcha kitoblarni kiritib bo'lgach 'exit' deb yozing): Hadis Sevgan kitobingizni kiriting(barcha kitoblarni kiritib bo'lgach 'exit' deb yozing): exit Rahmat!
In [4]:
savol = "Yoshingizni kiriting: "


while True:
qiymat = input(savol)
if qiymat == 'exit' or qiymat == 'quit':
break
yosh = int(qiymat)

if yosh<7:
narh = 2000
elif 7<=yosh<18:
narh = 3000
elif 18<=yosh<65:
narh = 10000
else: narh = 0

if narh==0:
print("Sizga chipta bepul")
else:
print(f"Chipta {narh} so'm")
Yoshingizni kiriting: 22 Chipta 10000 so'm Yoshingizni kiriting: 23 Chipta 10000 so'm Yoshingizni kiriting: quit
In [5]:
savol ="Kiritilgan sonning ildizini qaytaruvchi dastur.\n"
savol += "Musbat son kiriting "
savol += "(dasturni to'xtatish uchun 'exit' deb yozing): "


while True:
qiymat = input(savol)
if qiymat=='exit':
break
elif float(qiymat)<0:
continue # agar foydalanuvchi manfiy son kiritsa tsiklni takrorlaymiz
else:
ildiz = float(qiymat)**(0.5)
print(f"{qiymat} ning ildizi {ildiz} ga teng")

Kiritilgan sonning ildizini qaytaruvchi dastur.
Musbat son kiriting (dasturni to'xtatish uchun 'exit' deb yozing):-56
Kiritilgan sonning ildizini qaytaruvchi dastur. Musbat son kiriting (dasturni to'xtatish uchun 'exit' deb yozing) 65
65 ning ildizi 8.06225774829855 ga teng Kiritilgan sonning ildizini qaytaruvchi dastur.
Musbat son kiriting (dasturni to'xtatish uchun 'exit' deb yozing):-9
Kiritilgan sonning ildizini qaytaruvchi dastur. Musbat son kiriting (dasturni to'xtatish uchun 'exit' deb yozing):9
9 ning ildizi 3.0 ga teng Kiritilgan sonning ildizini qaytaruvchi dastur. Musbat son kiriting (dasturni to'xtatish uchun 'exit' deb yozing):exit

18-DARS. WHILE, RO'YXATLAR VA LUG'ATLAR
While tsikli yordamida ro'yxatlar bilan ishlashni o'rganamiz.

Ro'yxatlar (lug'atlar) bilan ishlashda while tisklining foydalari juda ko'p. Misol uchun foydalanuvchidan bir nechta ma'lumotlarni qabul qilib olish, ro'yxatdan takrorlanuvchi qiymatlarni o'chirib tashlash yoki bir ro'yxatni ikkinchi ro'yxatga ko'chirishda while tsiklidan foydalanishimiz mumkin.
WHILE YORDAMIDA RO'YXATNI TO'LDIRISH
Quyidagi dasturga e'tibor bering, avval ismlar degan bo'sh ro'yxat yaratib oldik. Keyin esa while tsikli yordamida foydalanuvchidan ro'yxatga ism qo'shishni so'raymiz. So'ngra foydalanuvchidan yana ism qo'shmoqchi yoki yo'q ekanin so'raymiz va foydalanuvchining javobiga ko'ra yoki while ni boshiga qaytamiz, yoki tsiklni to'xtatamiz.
In [4]:
ismlar = []


print("Yaqin do'stlaringiz ro'yxatini tuzamiz.")
n=1 # ismlarni sanash uchun o'zgaruvchi
while True:
savol = f"{n}-do'stingiz ismini kiriting:"
ism = input(savol)
ismlar.append(ism)
javob = input("Yana ism qo'shasizmi? (ha/yo'q)")
if javob =='ha':
n+=1
continue
else:
break
Yaqin do'stlaringiz ro'yxatini tuzamiz. 1-do'stingiz ismini kiriting:olim Yana ism qo'shasizmi? (ha/yo'q)ha 2-do'stingiz ismini kiriting:jonibek Yana ism qo'shasizmi? (ha/yo'q)ha 3-do'stingiz ismini kiriting:adham Yana ism qo'shasizmi? (ha/yo'q)yo'q
In [5]:
print("Do'stlaringiz ro'yxati:")
for ism in ismlar:
print(ism.title())
Do'stlaringiz ro'yxati: Olim Jonibek Adham
WHILE YORDAMIDA LUG'ATNI TO'LDIRISH
Yuqoridagi usul bilan lu'gatlarni ham shakllantirishimiz mumkin. Quyidagi kodda ism bu kalit, yosh esa kalitga mos keluvchi qiymat. while tsiklining davomiyligi esa ishora ning qiymatiga bog'liq.
In [6]:
print("Do'stlaringiz yoshini saqlaymiz.")
dostlar = {}
ishora = True
while ishora:
ism = input("Do'stingiz ismini kiriting: ")
yosh = input(f"{ism.title()}ning yoshini kiriting: ")
dostlar[ism] = int(yosh) # ism kalit, yosh qiymat

javob = input("Yana ma'lumot qo'shasizmi? (ha/yo'q)")
if javob == "yo'q":
ishora = False


for ism, yosh in dostlar.items():
print(f"{ism.title()} {yosh} yoshda")
Do'stlaringiz yoshini saqlaymiz. Do'stingiz ismini kiriting: olim Olimning yoshini kiriting: 25 Yana ma'lumot qo'shasizmi? (ha/yo'q)ha Do'stingiz ismini kiriting: adham Adhamning yoshini kiriting: 36 Yana ma'lumot qo'shasizmi? (ha/yo'q)yo'q Olim 25 yoshda Adham 36 yoshda
RO'YXAT ELEMENTLARINI O'CHIRISH
Avvalgi darslarimizning birida ro'yxat elementini o'chirish uchun .remove(qiymat) metodi bilan tanishgan edik. Esingizda bo'lsa, bu metod ro'yxatdan eng birinchi uchragan qiymatni o'chiradi. Agar ro'yxatimizda ma'lum bir qiymat bir necha bor takrorlangan bo'lsa, ularning barchasini o'chirib tashlash uchun while tsiklidan foydalanishmiz mumkin.
In [7]:
cars = ['lacetti','nexia','toyota','nexia','audi','malibu','nexia']
while 'nexia' in cars: # toki nexia cars ro'yxati ichida ekan...
cars.remove('nexia') # nexia ni ro'yxatdan olib tashla
print(cars)
['lacetti', 'toyota', 'audi', 'malibu']
Yuqoridagi tsikl toki cars degan ro'yxatda 'nexia' qiymati tugagunga qadar takrorlanaveradi.
RO'YXATDAN RO'YXATGA ELEMENT KO'CHIRISH
Tasavvur qiling bizda ma'lum bir ro'yxat bor, biz ro'yxatdagi har bir element ustida biror amalni bajarib, uni birinchi ro'yxatdan ikkinchi ro'yxatga ko'chirib olmoqchimiz. Shunday holatlarda while tsikli juda qo'l keladi.
Quyidagi misolni ko'raylik. Bizda talabalar ro'yxati bor. while tsikli toki ro'yxatda talabalar bor ekan aylanaveradi. Tsikl ichida biz .pop() metodi yordamida talabaning ismini ro'yxatdan sug'urib oldik va foydalanuvchidan talabani baholashni so'radik. Talabaning ismi va bahosini lug'at elementi ko'rinishida saqlab qo'ydik (talaba - kalit, baho - qiymat).
In [8]:
talabalar = ['hasan', 'husan', 'olim', 'botir']
baholangan_talabalar = {}
while talabalar:
talaba = talabalar.pop()
baho = input(f"{talaba.title()}ning bahosini kiriting: ")
print(f"{talaba.title()} baholandi")
baholangan_talabalar[talaba] = baho
Botirning bahosini kiriting: 5 Botir baholandi Olimning bahosini kiriting: 5 Olim baholandi Husanning bahosini kiriting: 4 Husan baholandi Hasanning bahosini kiriting: 3 Hasan baholandi
Yuqorida biz while tsikli yordamida ro'yxat va lug'atlar ustida bajarish mumkin bo'lgan ba'zi misollarni ko'rdik. Albatta dasturlash davomida bundan boshqa holatlar ham uchrashi tabiiy.
AMALIYOT

  1. Foydalanuvchidan buyurtma qabul qiluvchi dastur yozing. Mahsulotlar nomini birma-bir qabul qilib, yangi ro'yxatga joylang.

  2. e-bozor uchun mahsulotlar va ularning narhlari lug'atini shakllantiruvchi dastur yozing. Foydalanuvchidan lug'atga bir nechta elementlar (mahsulot va uning narhi) kiritishni so'rang.

  3. Yuqoridagi ikki dasturni jamlaymiz. Foydalanuvchi buyurtmasi ro'yxatidagi har bir mahsulotni e-bozordagi mahsulotlar bilan solishitiring (tayyor ro'yxat ishlatishingiz mumkin). Agar mahsuot e-bozorda mavjud bo'lsa mahuslot narhini chiqaring, aks holda "Bizda bu mahsulot yo'q" degan xabarni kor'sating.

JAVOBLAR
In [ ]:
savat =[]
while True:
mahsulot = input("Savatga mahsulot qo'shing:")
savat.append(mahsulot)
javob = input("Yana mahsulot qo\'shasizmi?(ha/yo\'q)")
if javob != 'ha':
break
mahsulotlar = {} while True: mahsulot = input("Mahsulot nomini kiriting: ") narh = input(f"{mahsulot.title()}ning narhini kiriting: ") mahsulotlar[mahsulot] = narh javob = input("Yana mahsulot qo'shasizmi?(ha/yo'q)") if javob != 'ha': break
In [ ]:
buyurtmalar = ['olma','anjir','uzum','qovun']
mahsulotlar = {'olma':20000,
'shaftoli':25000,
'tarvuz':18000,
'uzum':22000}


while buyurtmalar:
buyurtma = buyurtmalar.pop()
if buyurtma in mahsulotlar.keys():
narh = mahsulotlar[buyurtma]
print(f"{buyurtma.title()} - {narh} so'm")
else:
print(f"Bizda {buyurtma} yo'q")



19-DARS. FUNKSIYA


Pythonda funksiyalar bilan tanishamiz

FUNKSIYA NIMA?


Funksiya ma'lum bir vazifani bajarishga mo'ljallangan kodlar yig'indisi. Biz shu paytgacha bir nechta tayyor funksiyalardan foydalanib keldik. Misol uchun print() funksiyasi konsolga matn chiqarish uchun, range() funksiyasi esa ma'lum oraliqdagi sonlarni yaratish uchun ishlatiladi.
Aslida har qanday funksiyaning ortida ham bir necha qatordan iborat kod bo'ladi, lekin biz funksiyaga murojat qilganda uning nomini yozamiz xolos. Funksiya ortidagi kod esa biz uchun yashirin bo'lib qolaveradi. Funksiyalarning qulayligi ham shunda. Dastur davomida ma'lum bir kodlarni qayta-qayta yozmaslik uchun biz ularni jamlab, bitta funksiya ichiga joylashimiz va dastur davomida bu kodlarga funksiya nomi orqali murojat qilishimiz mumkin.
Funksiyalar turlicha bo'ladi, ba'zi funksiyalar sizdan qiymat qabul qilib, konsolga biror ma'umot chiqaradi, ba'zilari esa sizdan qabul qilgan qiymat ustida turli amallar bajarib yangi qiymat qaytaradi. Foydalanuvchidan mutlaqo qiymat qabul qilmaydigan funksiyalar ham mavjud.
Ushbu mavzuda siz qanday qilib Pythonda yangi funksiya yaratish, unga murojat qilish, tekshirish va to'g'rilashni o'rganasiz. Shuningdek darsimiz yakunida dasturimizni bir nechta faullarga ajratishni va funksiylarani alohida, module deb ataluvchi fayllarga joylashni ham o'rganamiz.

FUNKSIYA YARATAMIZ


Keling oddiy, salom_ber deb nomlangan funksiya yaratamiz. Bu funksiya murojat qilganimizda konsolga "Assalom alaykum!" degan xabarni chiqarsin.
In [4]:
def salom_ber():
"""Salom beruvchi funksiya"""
print("Assalomu alaykum!")
Kodni qatroma-qator tahlil qilaylik:

  1. Avvalo def operatori yordamida Pythonga funksiya yaratayotganimizni bildirdik. def dan so'ng esa funksiyamizga nom berdik va qavslarni ochib, yopdik. Bizning funksiyamiz foydalanuvchidan hech qanday qiymat qabul qilmaydi, shuning uchun ham qavs ichi bo'sh. Keyingi misollarda foydalanuvchidan qiymat qabul qiluvchi funksiyalarni ham ko'ramiz.

  2. def qatoridan keyin o'ngga surib yozilgan har qanday kod funksiyaning badani hisoblanadi. 2-qatorda biz uchta ketma-ket qo'shtirnoq ichida funksiya haqida ma'lumot berdik. Python mana shu ma'lumotni o'qib, dasturchi funksiya haqida bilmoqchi bo'lganda aynan shu matnni ko'rsatadi.

  3. Oxirgi qatorimizda esa "Assalomu alaykum!" matnini konsolga chiqarishni buyurdik. Bizning sodda funksiyamizning asosiy vazifasi ham shu.

Mana funksiya tayyor. Endi bu funksiyadan foydalanish uchun uni chaqiramiz. Buning uchun funksiya nomini yozamiz va qavslarni ochib, yopamiz (esingizda bo'lsa bizning funksiyamiz qiymat qabul qilmaydi, shuning uchun qavslar ichi bo'sh).
In [5]:
salom_ber()
Assalomu alaykum!
Funksiyaga nom berishda fe'l, ya'ni harakatni bildiruvchi so'zlar yoki jumlalardan foydalaning. Bu bilan siz o'zgaruvchi va funksiya o'rtasini farqlashingiz oson bo'ladi. Misol uchun, yuqorida biz funksiyamizni salom emas salom_ber deb nomladik.\

FUNKSIYAGA QIYMAT UZATISH


Avvalgi sodda funksiyamiz foydalanivchidan hech qanday qiymat olmaydi va barchaga birday "Assalomu alaykum!" deb javob qiladi. Keling funksiyaga o'zgartirish kiritamiz, funksiya foydalanuvchi ismini qabul qilib, unga ismi bilan murojat qilsin. Buning uchun funksiya nomidan keyin, qavs ichida foydalanuvchi berishi kerak bo'lgan qiymatni ko'rsatamiz.
In [6]:
def salom_ber(ism):
"""Fodyalanuvchi ismini qabul qilib, unga salom beruvchi funksiya"""
print(f"Assalomu alaykum, hurmatli {ism.title()}!")
Mana endi fuknsiyamiz foydalanuvchidan ism degan qiymatni ham kutadi.
In [7]:
salom_ber('hasan')
Assalomu alaykum, hurmatli Hasan!
Agar funksiyaga murojat qilishda, unga qiymat bermasak xatolik vujudga keladi:
In [8]:
salom_ber()
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) in ----> 1 salom_ber() TypeError: salom_ber() missing 1 required positional argument: 'ism'

DOCSTRING


Avval aytganimizdek, funksiya yaratganda, funksiya qanday ishlashi haqida qisqacha ma'lumot berib ketish o'zimiz uchun ham, kelajakda bizni funksiyamizni ishlatadigan boshqa dasturchilar uchun ham juda foydali bo'ladi. Quyidagi funksiyaning 2-qatorda biz funksiya haqida ma'lumot berdik. Bu qator docstring deyiladi. Murakkab funksiyalar uchun docstringni bir necha qatorga bo'lib yozishingiz mumkin
In [9]:
def salom_ber(ism):
"""Fodyalanuvchi ismini qabul qilib,
unga salom beruvchi funksiya"""
print(f"Assalomu alaykum, hurmatli {ism.title()}!")
Xo'sh, bu ma'lumot qachon va qayerda ko'rsatiladi? Dastur yozish jarayonida funksiya nomini yozishingiz bilan, docstring ko'rsatiladi:
Docstringni konsolga chiqarish uchun print(funksiya_nomi.__doc__) deb ham yozishimiz mumkin:
In [10]:
print(salom_ber.__doc__)
Fodyalanuvchi ismini qabul qilib, unga salom beruvchi funksiya

FUNKSIYAGA BIR NECHA BOR MUROJAT QILISH


Funksiya yaratishning asl maqsadlaridan biri, biz unga qayta-qayta, yangi qiymatlar bilan murojat qilishimiz mumkin.
In [11]:
salom_ber('hasan')
Assalomu alaykum, hurmatli Hasan!
In [12]:
salom_ber('olim')
Assalomu alaykum, hurmatli Olim!

ARGUMENT VA PARAMETER


Funksiya yaratishda, qavs ichida berilgan, funksiya to'g'ri ishlashi uchun uzatiladigan qiymat parameter deb ataladi. Yuqoridagi misolda ism bu salom_ber funksiyasining parametri.
Foydalanuvchi funksiyaga murojat qilishda funksiyaga uzatgan qiymat esa argument deb ataladi. salom_ber('hasan') kodida 'hasan' bu argument.
Ba'zi manbalarda yoki darslarda argument va parametr so'zlari almashtirib ishlatilishi ham kuzatiladi.

FUNKSIYAGA BIR NECHTA ARGUMENT UZATISH


Shunday funksiyalar bor, bir emas bir nechta parameter talab qilishi mumkin, foydalanuvchi esa o'z navbatida bir nechta argumentlar taqdim qilishi kerak. Funksiyaga argument uzatishning bir necha usuli bor, keling ular bilan birma bir tanishamiz.

TO'G'RI TARTIBDA UZATISH


Bu usulda, funksiya parametrlari qaysi tartibda yozilgan bo'lsa, argumentlar ham aynan shu ketma-ketlikda uzatilishi kerak. Keling bitta misol ko'ramiz. Quyidagi funksiya foydalanuvchining ismi va familiyasini parametr sifatida qabul qilib, ularni jamlab xabar chiqaradi.
In [13]:
def toliq_ism(ism, familiya):
"""Foydalanuvchi ism va familiyasini jamlab chiqaruvchi funksiya"""
print(f"Foydalanuvchi ismi: {ism.title()}\n"
f"Foydalanuvchi familiyasi: {familiya.title()}")
Yuqoridagi funksiya to'g'ri natija chiqarishi uchun argumentlarni ism va familiya ketma-ketligida kiritishimiz lozim.
In [14]:
toliq_ism('olim','hakimov')
Foydalanuvchi ismi: Olim Foydalanuvchi familiyasi: Hakimov
In [15]:
toliq_ism('hakimov','olim')
Foydalanuvchi ismi: Hakimov Foydalanuvchi familiyasi: Olim
Ko'p xolatlarda esa, argumentlarni noto'g'ri tartibda uzatish xatolikka ham olib kelishi mumkin.
In [16]:
def yosh_hisobla(ism, tugilgan_yil):
"""Foydalanuvchi yoshini hisoblaydigan dastur"""
print(f"{ism.title()} {2020-tugilgan_yil} yoshda")
In [17]:
yosh_hisobla('olim', 1997)
Olim 23 yoshda
In [18]:
yosh_hisobla(1997, 'olim')
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) in ----> 1 yosh_hisobla(1997, 'olim') in yosh_hisobla(ism, tugilgan_yil) 1 def yosh_hisobla(ism, tugilgan_yil): 2 """Foydalanuvchi yoshini hisoblaydigan dastur""" ----> 3 print(f"{ism.title()} {2020-tugilgan_yil} yoshda") AttributeError: 'int' object has no attribute 'title'

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.
In [19]:
yosh_hisobla(tugilgan_yil=1997, ism='olim')
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:
In [20]:
toliq_ism(familiya='hakimov',ism='olim')
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 vaqtida parametr = qiymat ko'rinishida beriladi.
In [21]:
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:
In [22]:
yosh_hisobla(1995,2020)
Siz 25 yoshdasiz
Endi esa faqat bitta argument (tugilgan_yil) bilan chaqiramiz:
In [23]:
yosh_hisobla(1993)
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?
In [25]:
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)
Tug'ilgan yilingizni kiriting: 1998
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) in 4 5 tyil = input("Tug'ilgan yilingizni kiriting: ") ----> 6 yosh_hisobla(tyil) in yosh_hisobla(tugilgan_yil, joriy_yil) 1 def yosh_hisobla(tugilgan_yil, joriy_yil=2020): 2 """Foydalanuvchi tug'ilgan yilidan uning yoshini hisoblaydi""" ----> 3 print(f"Siz {joriy_yil-tugilgan_yil} yoshdasiz") 4 5 tyil = input("Tug'ilgan yilingizni kiriting: ") TypeError: unsupported operand type(s) for -: 'int' and 'str'
In [26]:
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)
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) in 3 print(f"Siz {joriy_yil-tugilgan_yil} yoshdasiz") 4 ----> 5 yosh_hisobla(1993) TypeError: yosh_hisobla() missing 1 required positional argument: 'joriy_yil'
In [27]:
def salom_ber():
"""Salom beruvchi funksiya"""
print("Assalomu alaykum!")


salom_ber('hasan')
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) in 3 print("Assalomu alaykum!") 4 ----> 5 salom_ber('hasan') TypeError: salom_ber() takes 0 positional arguments but 1 was given
In [29]:
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')
File "", line 6 toliq_ism('olim hakimov') ^ IndentationError: unindent does not match any outer indentation level

AMALIYOT


  1. Foydalanuvchi ismi va yoshini so'rab, uning tug'ilgan yilini hisoblaydigan funksiya yozing.

  2. Foydalanuvchidan son olib, uning kvadrati va kubini konsolga chiqaruvchi funksiya yozing.

  3. Foydalanuvchidan son olib, son juft yoki toqligini konsolga chiqaruvchi funksiya yozing.

  4. Foydalanuvchidan ikkita son olib, ulardan kattasini konsolga chiqaruvchi funksiya yozing. Agar sonlar teng bo'lsa "Sonlar teng" degan xabarni chiqaring.

  5. Foydalanuvchidan x va y sonlarini olib, ni konsolga chiqaruvchi funksiya yozing.

  6. Yuqoridagi funksiyada y uchun 2 standart qiymatini bering.

  7. Foydalanuvchidan son qabul qilib, sonni 2 dan 10 gacha bo'lgan sonlarga qoldiqsiz bo'linishini tekshiruvchi funksiya yozing. Natijalarni konsolga chiqaring.

JAVOBLAR


In [38]:

Download 10,21 Mb.

Do'stlaringiz bilan baham:
1   ...   26   27   28   29   30   31   32   33   ...   58




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish