Print("Assalom alaykum")


Lug'at ichidagi lug'atlar bir hil tuzilishga ega bo'lgani ishingizni ancha yengillashtiradi, aks holda kodingiz murakkablashib ketishi mumkin



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

Lug'at ichidagi lug'atlar bir hil tuzilishga ega bo'lgani ishingizni ancha yengillashtiradi, aks holda kodingiz murakkablashib ketishi mumkin.
AMALIYOT

  • Adabiyot (ilm-fan, san'at, internet) olamidagi 4 ta mashxur shaxlar haqidagi ma'lumotlarni lug'at ko'rinishida saqlang. Lug'atlarni bitta ro'yxatga joylang, va har bir shaxs haqidagi ma'lumotni konsolga chiqaring.

  • Yuqoridagi lug'atlarga har bir shaxsning mashxur asarlari ro'yxatini ham qo'shing. For tsikli yordamida muallifning ismi va uning asarlarini konsolga chiqaring.

  • Oila a'zolaringiz (do'stlaringiz) dan 3 ta sevimli kino-seriali haqida so'rang. Do'stingiz ismi kalit, uning sevimli kinolarini esa ro'yxat ko'rinishida lug'artga saqlang. Natijani konsolga chiqaring.

  • Davlatlar degan lug'at yarating, lug'at ichida bir nechta davlatlar haqida ma'lumotlarni lug'at ko'rinishida saqlang. Har bir davlat haqida ma'lumotni konsolga chiqaring.

  • Yuqoridagi dasturga o'zgartirish kiriting: konsolga barcha davlatlarni emas, foydalanuvchi so'ragan davlat haqida ma'lumot bering. Agar davlat sizning lug'atingizda mavjud bo'lmasa, "Bizda bu davlat haqida ma'lumot yo'q" degan xabarni chiqaring.

In [23]:
buxoriy = {'ism':'Abu Abdulloh Muhammad ibn Ismoil',
'tyil':810,
'vyil':870,
'tjoy':'Buxoro'
}


qodiriy = {'ism':'Abdulla Qodiriy',
'tyil':1894,
'vyil':1938,
'tjoy':'Toshkent'
}


vohidov = {'ism':'Erkin Vohidov',
'tyil':1936,
'vyil':2016,
'tjoy':"Farg'ona"
}


navoiy = {'ism':'Alisher Navoiy',
'tyil':1441,
'vyil':1501,
'tjoy':"Xirot"
}


shaxslar = [buxoriy, qodiriy, vohidov, navoiy]


for shaxs in shaxslar:
ism = shaxs['ism']
tyil = shaxs['tyil']
vyil = shaxs['vyil']
tjoy = shaxs['tjoy']
print(f"{ism} {tyil}-yilda {tjoy}da tavallud topgan. "
f"{vyil-tyil} yil umr ko'rgan.")
Abu Abdulloh Muhammad ibn Ismoil 810-yilda Buxoroda tavallud topgan. 60 yil umr ko'rgan. Abdulla Qodiriy 1894-yilda Toshkentda tavallud topgan. 44 yil umr ko'rgan. Erkin Vohidov 1936-yilda Farg'onada tavallud topgan. 80 yil umr ko'rgan. Alisher Navoiy 1441-yilda Xirotda tavallud topgan. 60 yil umr ko'rgan.
In [24]:
buxoriy = {'ism':'Abu Abdulloh Muhammad ibn Ismoil',
'tyil':810,
'vyil':870,
'tjoy':'Buxoro',
'asarlar':["Al-jome’ as-sahih", "Al-adab al-mufrad", "At-tarix al-kabir", "At-tarix as-sag‘ir"]
}


qodiriy = {'ism':'Abdulla Qodiriy',
'tyil':1894,
'vyil':1938,
'tjoy':'Toshkent',
'asarlar':["O'tkan kunlar","Mehrobdan Chayon",'Obid ketmon']
}


vohidov = {'ism':'Erkin Vohidov',
'tyil':1936,
'vyil':2016,
'tjoy':"Farg'ona",
'asarlar':["Tong nafasi","Qo'shiqlarim sizga","O'zbegim","Qiziquvchan Matmusa"]
}


navoiy = {'ism':'Alisher Navoiy',
'tyil':1441,
'vyil':1501,
'tjoy':"Xirot",
'asarlar':["Xamsa","Lison ut-Tayr","Mahbub Al-Qulub",'Munojot']
}


shaxslar = [buxoriy, qodiriy, vohidov, navoiy]


for shaxs in shaxslar:
ism = shaxs['ism']
asarlar = shaxs['asarlar']
print(f"\n{ism} ning mashxur asarlari: ")
for asar in asarlar:
print(asar)
Abu Abdulloh Muhammad ibn Ismoil ning mashxur asarlari: Al-jome’ as-sahih Al-adab al-mufrad At-tarix al-kabir At-tarix as-sag‘ir Abdulla Qodiriy ning mashxur asarlari: O'tkan kunlar Mehrobdan Chayon Obid ketmon Erkin Vohidov ning mashxur asarlari: Tong nafasi Qo'shiqlarim sizga O'zbegim Qiziquvchan Matmusa Alisher Navoiy ning mashxur asarlari: Xamsa Lison ut-Tayr Mahbub Al-Qulub Munojot
In [25]:
kinolar = {
'ali':['Terminator','Rambo','Titanic'],
'vali':['Tenet','Inception','Interstellar'],
'hasan':['Abdullajon','Bomba','Shaytanat'],
'husan':['Mahallada duv-duv gap','John Wick']
}


for ism, kinolar in kinolar.items():
print(f"\n{ism.title()}ning sevimli kinolari:")
for kino in kinolar:
print(kino)
Alining sevimli kinolari: Terminator Rambo Titanic Valining sevimli kinolari: Tenet Inception Interstellar Hasanning sevimli kinolari: Abdullajon Bomba Shaytanat Husanning sevimli kinolari: Mahallada duv-duv gap John Wick
In [26]:
davlatlar = {
"o'zbekiston":{'poytaxt':"toshkent",
'maydon':448978,
'aholi':33_000_000,
'pul birligi':"so'm"
},
"rossiya":{'poytaxt':"moskva",
'maydon':17_098_246,
'aholi':144_000_000,
'pul birligi':"rubl"
},
"aqsh":{'poytaxt':"vashington",
'maydon':9_631_418,
'aholi':327_000_000,
'pul birligi':"dollar"},
"malayziya":{'poytaxt':"kuala-lumpur",
'maydon':329750,
'aholi':25_000_000,
'pul birligi':"rinngit"}
}


for davlat, info in davlatlar.items():
if davlat.lower()=='aqsh':
davlat = davlat.upper()
else:
davlat = davlat.capitalize()
print(f"\n{davlat}ning poytaxti {info['poytaxt'].title()}"
f"\nHududi: {info['maydon']} kv.km"
f"\nAholisi: {info['aholi']}"
f"\nPul birligi: {info['pul birligi']}")
O'zbekistonning poytaxti Toshkent Hududi: 448978 kv.km Aholisi: 33000000 Pul birligi: so'm Rossiyaning poytaxti Moskva Hududi: 17098246 kv.km Aholisi: 144000000 Pul birligi: rubl AQSHning poytaxti Vashington Hududi: 9631418 kv.km Aholisi: 327000000 Pul birligi: dollar Malayziyaning poytaxti Kuala-Lumpur Hududi: 329750 kv.km Aholisi: 25000000 Pul birligi: rinngit
In [22]:
davlatlar = {
"o'zbekiston":{'poytaxt':"toshkent",
'maydon':448978,
'aholi':33_000_000,
'pul birligi':"so'm"
},
"rossiya":{'poytaxt':"moskva",
'maydon':17_098_246,
'aholi':144_000_000,
'pul birligi':"rubl"
},
"aqsh":{'poytaxt':"vashington",
'maydon':9_631_418,
'aholi':327_000_000,
'pul birligi':"dollar"},
"malayziya":{'poytaxt':"kuala-lumpur",
'maydon':329750,
'aholi':25_000_000,
'pul birligi':"rinngit"}
}


davlat = input('Davlat nomini kiriting: ').lower()
if davlat in davlatlar:
info = davlatlar[davlat]
print(f"\n{davlat.capitalize()}ning poytaxti {info['poytaxt'].title()}"
f"\nHududi: {info['maydon']} kv.km"
f"\nAholisi: {info['aholi']}"
f"\nPul birligi: {info['pul birligi']}")
else:
print("Bizda bu davlat haqida ma'lumot mavjud emas")
Davlat nomini kiriting: malayziya Malayziyaning poytaxti Kuala-Lumpur Hududi: 329750 kv.km Aholisi: 25000000 Pul birligi: rinngit





17-DARS. while TSIKLI


while tsikli bilan tanishamiz

YANA input()


Dasturlar foydalanuvchining muammolarini hal qilish uchun yoziladi. Buning uchun esa, foydalanuvchi bilan aloqa o'rnatish, undan turli ma'lumotlarni qabul qilib olib talab etiladi. Misol uchun, dasturimiz foydalanuvchiga ismi bilan murojat qilishi uchun, avval uning ismini so'rashi kerak. Yoki, foydalanuvchi istagan ma'lumotni topish uchun avval undan biror kalit so'z kiritishni so'rash kerak va hokazo.
Biz avvalgi darsimizda input() yordamida foydalanuvchidan qiymat qilishni o'rgangan edik. Dastur davomida input() funktsiyasini chaqirganimizda dastur foydalanuvchi biror matn kiritiib, Enter tugmasini bosgunga qadar to'xtab turadi.
Foydalanuvchi kiritgan qiymatni biror o'zgaruvchiga yuklash, va undan dastur davomida foydalanish mumkin.
In [5]:
ism = input("Ismingiz nima? ")
print(f'Salom, {ism.title()}')
Ismingiz nima? Anvar Salom, Anvar
input() finktsiyasi ichidagi matn ingliz tilida prompt, savol deyiladi. Aslida biz savolni ham o'zgaruvchiga yuklab, shaxsiy so'rovnomalar ham yaratishimiz mumkin.
In [6]:
ism = input("Ismingiz nima? ")
savol = f"Salom, {ism.title()}. Yoshingiz nechida? "
yosh = input(savol)
Ismingiz nima? Hamida Salom, Hamida. Yoshingiz nechida? 11
Yuqorida birinchi input() bilan foydalanuvchi ismini so'radik va yangi savol matnini yasab oldik.

Sonlar va input()


input() funktsiyasi har qanday kiritilgan qiymatni matn sifatida qabul qilib oladi. Agar foydalanuvchidan son talab qilinsa, foydalanuvchi kiritgan qiymatni butun (integer) yoki on'lik (float) son ko'rinishiga o'tkazib olish kerak.
Buning uchun int() yoki float() funktsiyalaridan foydalanamiz.
In [7]:
ism = input("Ismingiz nima? ")
savol = f"Salom, {ism.title()}. Yoshingiz nechida? "
yosh = input(savol)
yosh = int(yosh) # yosh ni butun songa o'tkazamiz
height = input("Bo'yingiz necha metr? ")
height = float(height) # bo'yni o'nlik songa o'tkazamiz
Ismingiz nima? Maryam Salom, Maryam. Yoshingiz nechida? 6 Bo'yingiz necha metr? 1.2
Foydalanuvchidan qiymat so'raganingizda input()ichidagi savolni aniq va tushunarli qilib yozing. Masalan: input("Tug'ilgan yilingizni kiriting: ")

while TSIKLI BILAN TANISHAMIZ


Biz avvalroq for tsikli bilan tanishgan edik. for tsikli ma'lum bir ro'yxatni olib, ro'yxat ichidagi qiymatlar tugaginga qadar biror kodni takrorlar edi. while ham takrorlash operatori bo'lib, for dan farqli ravishda, toki ma'lum bir shart to'g'ri (True) bo'lsa, kodni takrorlayveradi.
while so'zi ingiz tilidan "toki" yoki "-gacha" deb tarjima qilinadi.
Keling sodda misol ko'ramiz, while yordamida 5 gacha sanaymiz:
In [8]:
son = 1 # son ga 1 qiymatini beramiz
while son<=5: # toki son 5 dan kichik yoki teng ekan...
print(son, end=' ') # son ni konsolga chiqaramiz,
son = son+1 # songa 1 qo'shamiz.
1 2 3 4 5
Yuqoridagi kodni tahlil qilamiz:

  • avval son degan o'zgaruvchi yaratdik va unga 1 qiymatini berdik.

  • 2-qatorda esa toki son 5 dan kichik yoki teng ekan 3-4-qatorlarni bajar dedik.

  • 3-qatorda son ni konsolga chiqardik

  • 4-qatorda son ga 1 qo'shdik.

  • 4-qatordan so'ng kod yana 2-qatorga qaytadi va son<=5 shartini tekshiradi, agar shart bajarilsa 3-4 qator qayta-qayta bajarilaveradi.

  • 5-qadamdan so'ng son=5 bo'lganda while tsikli to'xtaydi.

Pythonda += operatori bor. Bu operator o'ng tarafdagi qiymatni chap tarafdagi qiymatga qo'shadi. Misol uchun, yuqorida son = son + 1 o'rniga son += 1 deb yozishimiz mumkin.

while va input()


Shu paytgacha yozgan dasturlarimiz faqatgina bir martta bajarilayotgan edi. while tsikli yordamida dasturni to'xtatish imkoniyatini foydalanuvchiga berishimiz mumkin.
In [10]:
print("Kiritilgan sonning kvadratini qaytaruvchi dastur.")
savol = "Istalgan son kiriting "
savol += "(dasturni to'xtatish uchun 'exit' deb yozing): "
qiymat = ''
while qiymat != 'exit':
qiymat = input(savol)
if qiymat != 'exit':
print(float(qiymat)**2)
Kiritilgan sonning kvadratini qaytaruvchi dastur. Istalgan son kiriting (dasturni to'xtatish uchun 'exit' deb yozing): 3 9.0 Istalgan son kiriting (dasturni to'xtatish uchun 'exit' deb yozing): 5 25.0 Istalgan son kiriting (dasturni to'xtatish uchun 'exit' deb yozing): exit
Yuoqridagi dasturimiz toki foydalanuvchi exit deb yozguniga qadar takrorlanaveradi.

Ishora (flag)


Yuqoridagi dasturda dasturni to'xtatish uchun yagona shartni tekshirdik (qiymat!='exit'), katta dasturlarda bir emas bir nechta shartlarni tekshirish, va ulardan biri bajarilgan taqdirda dasturni to'xtatish talab qilinishi mumkin.
Bunday holatlarda biror o'zgaruvchidan ishora (flag) sifatida foydalanishimiz mumkin. Agar dastur bajarilishi davomida dasturni to'xtatish shartlaridan biri bajarilganda ishora o'zgaruvchining qiymatini o'zgartiramiz va dastur o'z-o'zidan to'xtaydi.
In [12]:
print("Kiritilgan sonning kvadratini qaytaruvchi dastur.")
savol = "Istalgan son kiriting "
savol += "(dasturni to'xtatish uchun 'exit' deb yozing): "
ishora = True
while ishora:
qiymat = input(savol)
if qiymat == 'exit':
ishora = False
else:
print(float(qiymat)**2)
Kiritilgan sonning kvadratini qaytaruvchi dastur. Istalgan son kiriting (dasturni to'xtatish uchun 'exit' deb yozing): 3 9.0 Istalgan son kiriting (dasturni to'xtatish uchun 'exit' deb yozing): 5 25.0 Istalgan son kiriting (dasturni to'xtatish uchun 'exit' deb yozing): exit

BREAK OPERATORI


Break operatori yordamida ma'lum bir shartni tekshirish va whiletsikli bajarilishini to'xtatib qo'yish mumkin.
In [13]:
print("Kiritilgan sonning kvadratini qaytaruvchi dastur.")
savol = "Istalgan son kiriting "
savol += "(dasturni to'xtatish uchun 'exit' deb yozing): "


while True: # abadiy tsikl
qiymat = input(savol)
if qiymat == 'exit':
break # tsiklni to'xtatish
else:
print(float(qiymat)**2)

Kiritilgan sonning kvadratini qaytaruvchi dastur. Istalgan son kiriting (dasturni to'xtatish uchun 'exit' deb yozing): 6 36.0 Istalgan son kiriting (dasturni to'xtatish uchun 'exit' deb yozing): 10 100.0 Istalgan son kiriting (dasturni to'xtatish uchun 'exit' deb yozing): exit
Break operatori fortsiklini to'xtatish uchun ham ishlatiladi.
In [14]:
sonlar = list(range(1,11))
for son in sonlar:
if son == 5: # son 5 ga teng bo'lsa kod to'xtaydi
break
print(f"{son} ning kvadrati {son**2} ga teng")


1 ning kvadrati 1 ga teng 2 ning kvadrati 4 ga teng 3 ning kvadrati 9 ga teng 4 ning kvadrati 16 ga teng
while tsikli ichida bir nechta break operatori ham bo'lishi mumkin.

CONTINUE OPERATORI


Continue operatori esa aksincha, ma'lum bir shart bajarilganda qadam tashlab o'tish uchun mo'ljallangan.
In [1]:
sonlar = list(range(1,11))
for son in sonlar:
if son == 5: # son 5 ga teng bo'lsa tiskl boshiga qaytadi
continue
print(f"{son} ning kvadrati {son**2} ga teng")
1 ning kvadrati 1 ga teng 2 ning kvadrati 4 ga teng 3 ning kvadrati 9 ga teng 4 ning kvadrati 16 ga teng 6 ning kvadrati 36 ga teng 7 ning kvadrati 49 ga teng 8 ning kvadrati 64 ga teng 9 ning kvadrati 81 ga teng 10 ning kvadrati 100 ga teng
Yuqoridagi kodga e'tibor qiling, qaysi sonning kvadrati yo'q?
In [2]:
son = 0
while son<10:
son += 1
if son%2!=0:
continue
else:
print(son)
2 4 6 8 10
while tsikli ichida bir nechta continue operatori ham bo'lishi mumkin.

ABADIY TSIKL TUZOG'I


Tsikllar bilan ishlashda abadiy tsikl yaratib qo'yishdan ehtiyot bo'lishimiz kerak. Abadiy tsiklga turli mantiqiy xatolar sabab bo'lishi mumkin: noto'g'ri shart, o'zgarmas qiymat, kodlar ketma-ketligida xatolik va hokazo.
Keling ba'zi misollarni ko'ramiz:
In [ ]:

Download 10,21 Mb.

Do'stlaringiz bilan baham:
1   ...   25   26   27   28   29   30   31   32   ...   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