Print("Assalom alaykum")


IndentationError - JOY TASHLASHDA XATOLIK



Download 10,21 Mb.
bet24/58
Sana28.06.2022
Hajmi10,21 Mb.
#713027
1   ...   20   21   22   23   24   25   26   27   ...   58
Bog'liq
Mohirdev.uz...

IndentationError - JOY TASHLASHDA XATOLIK


Python tilida qator boshidan yoki joy tashlab yozish muhim ahamiyatga ega. Qator boshidan asossiz joy qoldirish IndentationError ga olib keladi.
Quyidagi kodga e'tibor bering, qator boshida 1 dona bo'sh joy qolgani uchunoq Spyder muhiti xatolikni aniqlab, qizil bilan belgilab qo'ydi.

Ba'zi joylarda esa aksincha, bo'sh joy tashlab yozish talab qilinadi. Masalan, for tsiklida yoki if-elif-else shartlarining ichida va hokazo.
In [9]:
print("O'ngacha sanaymiz")
for n in range(10):
print(n+1)
File "", line 3 print(n+1) ^ IndentationError: expected an indented block
In [10]:
son = 50
if son>=0:
print("Musbat son")
else:
print("Manfiy son")
File "", line 5 print("Manfiy son") ^ IndentationError: expected an indented block

QANCHA JOY TASHLAYMIZ?


Yuqoridagi misollarda IndentationError oldini olish uchun joy tashlash talab qilindi. Xo'sh, qancha joy tashlash kerak va qanday qilib?
Aslida, hech bo'lmaganda 1 harflik bo'sh joy qoldirish ham bizni IndentationError dan xalos qiladi. LEKIN, biz dastur davomida bir hil joy tashlashga odatlanishimiz kerak.
Qoida sifatida kamida 4 ta harflik joy yoki 1 ta TAB (klaviaturadagi tab tugmasi) joy tashlashni odat qilishimiz kerak. Va eng muhimi ikkalasini aralashtirmasligimiz lozim. Ya'ni agar siz joy tashlash uchun Space (probel) ishlatsangiz, oxirigacha shunday qiling, agar Tab ishlatsangiz oxirigacha tab ishlating. Ikkalasini aralashtirmang!

RUN TIME ERROR - DASTURNI BAJARISHDA XATOLIK


Run time error — dastur bajarish jarayonida kelib chiqadi va dasturning ishlashini to'xtatadi. Sintaks xatolikdan farqli ravishda Python bunday xatolarni dasturni bajarishdan avval aniqlay olmaydi. Run time error ning bir necha turi bor. Keling, ulardan ba'zilari bilan tanishamiz.

TypeError


Biror amalni (funktsiya, metod) noto'g'ri ma'lumot turi ustida bajarish.
In [11]:
son = input("Istalgan son kiriting: ")
print(f"{son} ning kvadrati {son**2} ga teng")
Istalgan son kiriting: 22
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) in 1 son = input("Istalgan son kiriting: ") ----> 2 print(f"{son} ning kvadrati {son**2} ga teng") TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
Yuqoridagi kodda biz foydalanuvchi kiritgan qiymatni matndan songa o'tkazib olishni unutdik, natijada sonning kavdratini hisoblashda Python xato berdi.

NameError


O'zgaruvchi, funktsiya, obyekt nomini noto'g'ri yozish natijasida kelib chiquvchi xatolik.
In [12]:
prit("Hello World!")
--------------------------------------------------------------------------- NameError Traceback (most recent call last) in ----> 1 prit("Hello World!") NameError: name 'prit' is not defined
In [13]:
mevalar = ['olma','uzum','nok','anor','anjir']
for meva in mvealar:
print(meva)
--------------------------------------------------------------------------- NameError Traceback (most recent call last) in 1 mevalar = ['olma','uzum','nok','anor','anjir'] ----> 2 for meva in mvealar: 3 print(meva) NameError: name 'mvealar' is not defined

ValueError


Funktsiyaga noto'g'ri qiymatni yuborish natijasidagi xatolik
In [14]:
son = int(input("Istalgan son kiriting: "))
if son>=0:
print("Musbat son")
else:
print("Manfiy son")
Istalgan son kiriting: 46.5
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) in ----> 1 son = int(input("Istalgan son kiriting: ")) 2 if son>=0: 3 print("Musbat son") 4 else: 5 print("Manfiy son") ValueError: invalid literal for int() with base 10: '46.5'
Yuqoridagi dasturning 1-qatorida foydalanuvchidan istalgan son kiritishni so'rayabmiz, va foydalanuvchi kiritgan qiymatni int ya'ni butun songa o'tkazyabmiz. Kodning o'zida xato yo'q, lekin dastur bajarish jarayonida foydalanuvchi butun son emas, o'nlik son kiritgani uchun ValueError xatosi chiqdi. Sababi int() funktsiyasi faqatgina butun sonlar ko'rinishidagi matn bilan ishlaydi.
Dastur xato bermasligi uchun yoki int() funktsiyasini float() ga almashtrishimiz kerak, yoki foydalanuvchidan butun son kiritishni talab qilishimiz kerak.

IndexError


Yangi dasturchilar yo'l qo'yadigan yana bir xato bu indeks xatolik. Ya'ni ro'yxat elementlariga murojat qilishda indeksni noto'g'ri kiritish.
In [15]:
mevalar = ['olma','anor','uzum']
print(mevalar[3])
--------------------------------------------------------------------------- IndexError Traceback (most recent call last) in 1 mevalar = ['olma','anor','uzum'] ----> 2 print(mevalar[3]) IndexError: list index out of range
Bizda mevalar degan ro'yxat bor va ro'yxatda uchta meva bor. Biz 3-elementni konsolga chiqarmoqchimiz va print(mevalar[3]) deb yozdik va IndexError natijasini oldik. Sababi, dasturlashda indeks 0 dan boshlanadi va 3-elementga murojat qilish uchun 2-indeksni tanlaymiz. Demak, to'g'ri kod:
In [16]:
mevalar = ['olma','anor','uzum']
print(mevalar[2])
uzum

ZeroDivisionError


Dastur jarayonida 0 ga bo'lish yuzaga kelgandagi xatolik
In [17]:
x, y = 50, 50
z = 250/(x-y)
--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) in 1 x, y = 50, 50 ----> 2 z = 250/(x-y) ZeroDivisionError: division by zero

MANTIQIY XATOLAR


Mantiqiy xatolar - dasturchi tomonidan yo'l qo'yilgan va kutilgan natijani berishda to'sqinlik qiluvchi xatolar. Bunday xatolar eng ko'p uchraydigan va aniqlash eng qiyin bo'lgan xatolar hisoblanadi. Aksar holatlarda Python mantiqiy xatolarni aniqlamaydi va dastur bajarilaveradi (lekin kutilgan natija chiqmaydi).
Mantiqiy xatolar turli ko'rinishda bo'lishi mumkin, masalan sonlar bilan ishlashda:
In [18]:
radius = 5
pi = 4.14
aylana_yuzi = pi*radius**2
print(aylana_yuzi)
103.49999999999999
Yuqoridagi kod bajarildi, va natija ham chiqdi. Lekin natija xato. Nima uchun? Sababi biz deb, xato yozib ketdik.
Yana bir misol ko'raylik:
In [19]:
son = float(input("Istalgan son kiriting: "))
ildiz = son**1/2
print(f"{son} ning ildizi {ildiz} ga teng")
Istalgan son kiriting: 9 9.0 ning ildizi 4.5 ga teng
Yuqoridagi natijaga e'tibor bersangiz, 9 sonining ildizi 4.5 deb chiqdi. Sababi, 2-qatorda ildizni hisoblashda foydalanuvchi kiritgan son avval 1-darajaga oshirildi va undan keyin 2 ga bo'lindi. Kodni to'g'rilaymiz:
In [20]:
son = float(input("Istalgan son kiriting: "))
ildiz = son**(1/2)
print(f"{son} ning ildizi {ildiz} ga teng")
Istalgan son kiriting: 9 9.0 ning ildizi 3.0 ga teng
Noo'rin bo'sh joy qoldirish (yoki qoldirmaslik) ham mantiqiy xatoga olib kelishi mumkin:
In [21]:
mevalar = ['olma','uzum','nok','anor','anjir']
for meva in mevalar:
print(meva)
print("Dastur tugadi")
olma Dastur tugadi uzum Dastur tugadi nok Dastur tugadi anor Dastur tugadi anjir Dastur tugadi
Yuqorida "Dastur tugadi" matni bir marta, dastur tugaganidan so'ng chiqishi kerak edi. Lekin o'ngga suriib qolgani uchun bir necha bor qaytarildi.
Bundan boshqa ham mantiqiy xatoliklar juda ko'p uchraydi.
Mantiqiy xatoliklar mutlaqo topilmasdan ham qolib ketishi, va dastur bozorga chiqqanidan so'ng aniqlanishi tabiiy hol. Shuning uchun ham aksar dasturlar tez-tez yangilanib turadi.

Dastur jarayonida bundan boshqa xatoliklar ham ko'p uchraydi. Biz ulardan ba'zilari bilan tanishdik xolos. Keyingi darslarimizda Runtime xatoliklarni qanday qilib dastur davomida aniqlash, va dastur to'xtab qolishining oldini olishni o'rganamiz.

AMALIYOT


Quyida bir nechta kodlar berilgan, kodlar avvalgi darsdagi uy vazifalaridan iborat. Kodlardagi xatolarni toping va to'g'rilang. Har bir dasturda bir nechta xatolar mavjud bo'lishi mumkin. Xatolarni topish uchun dasturlarni bir necha marta, turli qiymatlar bilan bajarib ko'ring.
In [ ]:
son = float(input("Juft son kiriting: ")
if son%2==0:
print("Bu son juft emas.')
else:
print("Rahmat!"))
In [ ]:
yosh = (input("Yoshingiz nechida?"))


if yosh<=4 or yosh>=60:
narh = 0
elif yosh < 18
narh = 10000
else:
narh = 20000
print(f"Chipta {narh} so'm")
In [ ]:
x = float(input("Birinchi sonni kiriting: ")
y = float(input("Ikkinchi sonni kiriting: ")
if x==y:
print(f"{x}={y}")
elif x print(f'{x}<{y}")
else
print(f"{x}>{y}")
In [ ]:
mahsulotlar = ['un', "yog'", "sovun", 'tuxum', 'piyoz',
'kartoshka', 'olma', 'banan', 'uzum', 'qovun'
for n in range(5):
savat.append(input(f"Savatga {n+1}-mahsulotni qo'shing: "))


if savat:
for mahsulot in savat
if mahsulot in mahsulotlar:
print(f"Do'konimizda {mahsulot} bor")
else:
print(f"Do'konimizda {mahsulot} yo'q")
else:
print("Savatingiz bo'sh")
In [ ]:
mahsulotlar = ['un', "yog'", "sovun", 'tuxum', 'piyoz',
'kartoshka', 'olma', 'banan', 'uzum', 'qovun']
savat = []
for n in range(5):
savat.append(input(f'Savatga {n+1}-mahsulotni qo'shing: '))


bor_mahsulotlar = []
mavjud_emas = []
for mahsulot in savat:
if mahsulot in mahsulotlar:
bor_mahsulotlar.append(mahslot)
else:
mavjud_emas.append(mahsulot)


if mavjud_emas:
print("Do'konimizda quyidagi mahsulotlar yo'q:")
for mahsulot in mavjud_emas:
print(mahsulot)
else:
print("Siz so'ragan barcha mahsulotlar do'konimizda bor")

In [ ]:
users = ['alisher1983','aziza','yasina' 'umar']


login = input("Yangi login tanlang:' )


if login in users:
print('Login band, yangi login tanalng!')
else:
print("Xush kelibsiz!")

13-DARS GitHub PORTFOLIO


GitHub - dasturchining yuzi
Tajribali dasturchi, tajribasiz dasturchidan bir necha barobar qadrliroq. Dasturchi sifatida qilgan dasturlaringiz, qatnashgan loyihlaringiz haqida so'ralishingiz mumkin (masalan ish qidirish jarayonida). Tajribani ko'rsatishning eng qulay va oson usuli bu qilgan ishlaringizning onlayn portfoliosini yaratish.
Sifatli va loyihalarga boy portfolio Universitet diplomi va turli sertifikatlardan ham qadrliroq.

GITHUB NIMA?


GitHub - dasturlarni saqlash, ulashish va nazorat qilish uchun mo'ljallangan onlayn xosting hizmati. GitHub dasturchilarga biror loyiha ustida bir-biriga halaqit qilmagan holda jamoa bo'lib ishlash, dasturning turli versiyalarini nazorat qilib borish imkonini beradi (lekin biz bu haqida keyingi darslarimizning birida to'xtalamiz).
Bu darsda esa biz qanday qilib GitHubga loyihalarimizni yuklash, ulashish va boshqalarning loyihalarini ko'chirib olish haqida gaplashamiz.

GITHUBDA RO'YXATDAN O'TAMIZ


Boshlanishiga github.com sahifasiga o'tamiz va yangi akkaunt yaratamiz.

GitHubdan ro'yxatdan o'tish jarayoni juda oddiy, muhimi, email manzilingizga yuborilgan xatni tasdiqlashni unutmang.
Ro'yxatdan o'tganingizdan so'ng, o'zngiz haqingizda qisqacha ma'lumot kiritib qo'yishni ham unutmang.

REPOSITORY


GitHubda har bir loyiha (dastur) alohida repositoryda saqlanadi. Repository omma uchun ochiq (Pulbic) yoki yopiq (Private) bo'lishi mumkin. Misol uchun, bizning darslarimiz uchun ham alohida public repository ochilgan. U yerga kirib siz darslarimizga oid kodlarni ko'chirib olishingiz mumkin. Repository bir nechta fayllar va papkalardan iborat bo'lishi tabiiy hol.

LOYIHALARIMIZ UCHUN REPOSITORY YARATAMIZ


Bo'sh repository yaratish uchun, github.com sahifasida New tugmasini bosamiz.

Yangi ochilgan oynada:

  1. Repositorga ma'nili nom beramiz. Nom berishda kichik harflar bilan yozing va bo'sh joy o'rniga chiziqcha (-) ishlating.

  2. Repository ommaga ochiq (public)yoki yopiq (private) bo'lishini tanlaymiz. Buni keyin ham o'zgartirish mumkin.

  3. README faylini qo'shish (qo'shmalikni) tanlaymiz. README faylida siz loyiha haqida batafsil ma'lumot berishingiz mumkin. Agar loyiha omma uchun bo'lsa albatta README faylini ham tanlang va loyihangiz haqida ma'lumot bering.

  4. Create Repository tugmasini bosamiz.


Marhamat, repository tayyor. O'ng burchakdagi qalam tugmasini bosib, README faylini o'zgartirishimiz mumkin.

Hozircha repository bo'sh. Keling endi repositoryga fayllar qo'shamiz. Aksar dasturchilar gtihub bilan mahsus kommandalar yordamida ishlasada, biz osonroq usuldan, GitHub Desktop dasturidan foydalanamiz.

GitHub DESKTOP DASTURI


Boshlanishiga GitHub Desktop dasturini o'rntaylik. Buning uchun desktop.github.com sahifasiga kiramiz va Download tugmasini bosamiz.

Linux OS ga GitHub desktop dasturini o'rnatish uchun quyidagi sahifaga kiring.
Yuklab olingan faylni ochamiz, va dasturni o'rnatamiz. Bu yerda qiyin joi yo'q. Dasturni birinchi ochganimizda Login qilish talab qilinadi.
Login qilgandan so'ng yangi oynada sizning Repositorylaringiz ko'rsatilgan oyna ochiladi. Shuyerdan oxirgi yaratgan repositoryni tanlang va pastdagi Clone tugmasini bosing.

Yangi ochilgan oynada Repository uchun kompyuterimizda joy tanlaymiz:

DIQQAT! Papkalar (fayllar) nomida Kirill harflari bo'lmasin. Ba'zida, bu dasturni bajarishda xatolikka olib kelishi mumkin.
Repository sizning kompyuteringizga yuklandi. Lekin repository hozircha bo'sh.

File Manager yordamida yuqoridagi Repository uchun yaratilgan papkaga kodlaringizni ko'chiring va GitHub desktop dasturiga qayting. Papkadagi barcha o'zgarishlar GitHub desktopda ham paydo bo'ldi. O'zgarishlarni Repositorga qo'shish uchun, Summary degan joyda o'zgarishlar haqida qisqacha ma'lumot bering va Commit to main tugmasini bosing.

Va nihoyat, Repositoryni onlyanga yuklash uchun Push origin tugmasini bosing:


Mana endi GitHub.com sahifasiga qaytib, Repository ichiga kirsak barcha fayllarimiz onlaynda turibdi. Istlagan faylni tanlab, ichidagi kodni ham ko'rishimiz mumkin.

PUBLIC REPOSITORYNI KO'CHIRIB OLISH (CLONE)
Juda ko'p dasturchilar o'zlarining loyihalari bilan omma bilan ulashish uchun Repositoryni Public qilib qo'yadilar. Shunday Repositorylarni kompyuterga ko'chirib olish uchun avval reposytiry sahifasiga kiramiz, so'ngra burchakda Code tugmasini va yangi ochilgan Menuda esa Open with GitHub Desktop tugmalarini bosamiz.

Yuqoridagi ka'bi Repository uchun kompyuterimizda yangi joy tanlaymiz, va Clone tugmasini bosamiz.

Marhamat, Repository kompyuteringizga yuklandi. Endi kodni ochib, istalgancha o'zgartirishingiz mumkin.
AMALIYOT

  1. GitHub.com sahifasidan ro'yxatdan o'ting

  2. Kompyuteringizga GitHub Desktop dasturini o'rnating

  3. GitHubda Python darslari uchun yangi repository yarating

  4. Shu vaqtgacha yozgan kodlaringizni yangi repositoryga yuklang

  5. Sahifamizga qo'yib borilayotgan mashg'ulotlarning javoblarini quyidagi repositorydan o'zingizga Clone qilib oling: https://github.com/anvarnarz/python-darslar

14-DARS. LUG'AT BILAN TANISHUV


Yangi ma'lumot turi - Dictionary bilan tanishamiz.

Ushbu darsda yangi ma'lumot turi, Lug'at (Dictionary) bilan tanishamiz. Dars davomida lug'at yaratish, unga ma'lumot qo'shish, lug'atning ichida ro'yxat yoki aksincha ro'yxatning ichida lug'at saqlash ka'bi mavuzlar bilan tanishamiz.
Lug'at, ma'lumotlarni bizga tushunarliroq ko'rinishda saqlash imkonini beradi. Misol uchun biz biror avtomobilga oid lug'at yaratishimiz va lug'atda shu avtoga tegishli barcha ma'lumotlarni saqlashmiz mumkin (nomi, rangi, yili, motori, narhi va hokazo).

LUG'AT (DICTIONARY) NIMA?


Keling, nima uchun bu ma'lumot turi lug'at (dictionary) deyilishini tushunish uchun, oddiy lu'gatga qaraymiz. Odatda, lug'atdagi ma'umotlar ikki qismdan iborat bo'ladi: kalit so'z va izoh (yoki tarjima).

Xuddi oddiy lug'atlardagi ka'bi Python lug'atidagi ma'lumotlar ham ikki qismdan iborat bo'ladi: kalit so'z va qiymat (ingliz tilida key-value pair yoki kalit so'z-qiymat juftligi deyiladi).
Dasturlashda ko'p ishlatiladigan atamalarni ingliz tilida yodlab qolish juda muhim! Bu sizga kelajakda yangi ma'lumotlar izlashda, xatolar usitda ishlashda va umuman ish faoliyatingizda ko'p asqotadi. Shuing uchun variable, integer, float, string, list, tuple, dictionary, function, loop, va boshqa so'zlarni yaxshilab o'zlashtirib oling.
Keling, sodda lug'at yaratamiz:
In [4]:
car_0 = {'model':'ferrari','rang':'qizil'}
Yuqorida car_0 degan lug'at yaratdik. Lu'gatda 2 ta ma'lumot bor: mashinaning modeli (ferrari) va rangi (qizil). Bu yerda 'model' va 'rang' kalit so'zlar, 'ferrari' va 'qizil' esa mos keluvchi kalit so'zlarning qiymatlari. Kalit so'z va qiymat orasi ikki nuqta (:) bilan, lug'atdagi har bir juftlik esa vergul (,) bilan ajratilgan.

LUG'AT BILAN ISHLASH


Demak, Pytonda lug'at kalit so'z-qiymat juftliklarining yi'ginidisi ekan. Lug'atdagi biror qiymatni ko'rish uchun unga kalit so'z orqali murojat qilamiz:
In [5]:
car_0 = {'model':'ferrari','rang':'qizil'}
print(car_0['model'])
ferrari
In [6]:
print(car_0['rang'])
qizil
Lug'atdagi qiymatlar son (int, float), matn (string), ro'yxat (list, tuple, set) va hatto boshqa lug'at ham bo'lishi mumkin.
In [7]:
talaba_0 = {'ism':'murod olimov','yosh':20,'t_yil':2000}
print(f"{talaba_0['ism'].title()},\
{talaba_0['t_yil']}-yilda tu'gilgan,\
{talaba_0['yosh']} yoshda")
Murod Olimov, 2000-yilda tu'gilgan, 20 yoshda

YANGI JUFTLIK QO'SHISH


Lug'aga yangi kalit so'z va qiymatlar qo'shishimiz ham mumkin. Keling, yuqoridagi talaba_0 nomli lu'gatga yana 2 ta yangi, kurs va fakultet nomli, kalit so'zlar va qiymatlar qo'shamiz:
In [8]:
talaba_0['kurs'] = 4 # yangi, 'kurs' nomli kalit so'zga 4 qiymatini yuklaymiz
talaba_0['fakultet'] = 'informatika' # 'fakultet' ga esa 'informatika'
Lug'atni konsolga chiqarib ko'ramiz:
In [9]:
print(talaba_0)
{'ism': 'murod olimov', 'yosh': 20, 't_yil': 2000, 'kurs': 4, 'fakultet': 'informatika'}

BO'SH LUG'AT


Ba'zida dastur boshida bo'sh lug'at yaratib, dastur davomida lug'atga yangi ma'lumotlar kiritib borish talab qilinishi mumkin. Bundah holatda bo'sh lug'at quyidagicha yaratiladi:
In [10]:
talaba_1 = {}
Dastur davomida esa lug'atga qiymatlar kiritib borilishi mumkin:
In [11]:
talaba_1['ism'] = 'qobil rasulov'
talaba_1['kurs'] = 3
talaba_1['yosh'] = 20
print(talaba_1)
print(f"Talaba {talaba_1['ism'].title()} {talaba_1['kurs']}-kurs")
{'ism': 'qobil rasulov', 'kurs': 3, 'yosh': 20} Talaba Qobil Rasulov 3-kurs
Lug'atga kalit so'zlar qanday ketma-ketlikda kiritilsa, shu ketma-ketlik saqlanib qoladi.

KALIT SO'Z-QIYMAT JUFTLIGINI O'CHIRISH


Lu'gatdagi biror juftlik kerak emas bo'lsa uni del operatori yordamida lug'atdan olib tashlashimiz mumkin:
In [12]:
talaba_0 = {'ism':'murod olimov','yosh':20,'t_yil':2000}
print(talaba_0)
del talaba_0['yosh'] # yosh degan kalit so'z (va qiymatni) o'chiramiz
print(talaba_0)
{'ism': 'murod olimov', 'yosh': 20, 't_yil': 2000} {'ism': 'murod olimov', 't_yil': 2000}

LUG'ATNI QATORLARGA BO'LIB YOZISH


Uzung lug'atlarni bir necha qatorga bo'lib yozishimiz ham mumkin. Keling quyidagi misolni ko'ramiz, siz do'stlaringizdan ular qanday telefon ishlatishini so'radingiz va javoblarni bitta lug'atga joylamoqchisiz:
In [13]:
telefonlar = {
'ali':'iphone x',
'vali':'galaxy s9',
'olim':'mi 10 pro',
'orif':'nokia 3310'
}
Demak, lug'atni qatorga bo'lib yozish uchun katta qavs ochamiz, yangi qatordan joy tashlab, birinchi klit so'z va qiymatni kiritamiz, qator oxirida vergul qo'yib, yangi qatordan keyingi juftlikni yozamiz va hokazo. Oxirgi juftlikdan so'ng vergul qo'ymasdan qator tashlab, katta qavsni yopamiz.
Lug'atlarning ishlatilish doirasi juda keng va sizning yondoshuvingizga bog'liq xolos. Yuqoridagi lug'atga ham e'tibor qilsangiz, biz bir narsa (shaxs, avto) haqida ko'p ma'lumotlarni emas, ko'pchilik haqida bir hil ma'lumotlarni saqladik.

.get() METODI


Biz shu vaqtgacha lug'atdagi qiymatlarni ko'rish uchun to'g'ridan-to'g'ri kalit so'z orqali murojat qilayotgan edik. Bu usulning kamchiligi shundaki, agar lug'atda siz so'ragan kalit topilmasa, dastur KeyError xatoligi bilan to'xtab qoladi.
In [14]:
phone = telefonlar['ali']
print(f"Alining telefoni {phone}")
Alining telefoni iphone x
In [15]:
phone = telefonlar['hasan']
print(f"Hasanning telefoni {phone}")
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) in ----> 1 phone = telefonlar['hasan'] 2 print(f"Hasanning telefoni {phone}") KeyError: 'hasan'
Lug'atda 'hasan' kalit so'zi bo'lmagani uchun, yuqoridagi kod KeyError degan xatoni qaytardi. KeyError ham Run time error qatoriga kiradi.
Biz kelgusi darslarimizda Pythondagi xatolarni dastur bajarilishi jarayonida "tutib olishni" o'rganamiz. Hozircha esa get() metodi yordamida lug'atga murojat qilish va mavjud bolmagan kalitning o'rniga biror xabar qaytarishni ko'raylik.
In [16]:
phone = telefonlar.get('hasan','Bunday ism mavjud emas')
Yuqorida, lug'at nomidan so'ng .get() metodini yozdik, va argumentlar sifatida kalit so'z ('hasan') va kalit mavjud bo'lmaganda chiqadigan xabarni yozdik ('Bunday ism mavjud emas').
In [17]:
print(phone)
Bunday ism mavjud emas
Agar .get() metodida ikkinchi argumentni tashlab ketsangiz, va kalit mavjud bo'lmasa .get() metodi None degan qiymatni qaytaradi. None - qiymat mavjud emas degan ma'noni beradi.
In [18]:
phone = telefonlar.get('hasan')
print(phone)
None

AMALIYOT


  • otam (onam, akam, ukam, va hokazo) degan lug'at yarating va lug'atga shu inson haqida kamida 3 ta m'alumot kiriting (ismi, tu'gilgan yili, shahri, manzili va hokazo). Lug'atdagi ma'lumotni matn shaklida konsolga chiqaring: Otamning ismi Mavlutdin, 1954-yilda, Samarqand viloyatida tug'ilgan

  • Oila a'zolaringizning sevimli taomlari lug'atini tuzing. Lug'atda kamida 5 ta ism-taom jufltigi bo'lsin. Kamida uch kishining sevimli taomini konsolga chiqaring: Alining sevimli taomi osh

  • Python izohli lu'gati tuzing: Lug'atga shu kunga qadar o'rgangan 10 ta so'z (atamani) kiriting (masalan integer, float, string, if, else va hokazo) va har birining qisqacha tarjimasini yozing.

  • Foydalanuvchidan biror so'z kiritishni so'rang va so'zning tarjimasini yuqoridagi lug'atdan chiqarib bering. Agar so'z lu'gatda mavjud bo'lmasa, "Bunda so'z mavjud emas" degan xabarni chiqaring.

  • Yuqoridagi vazifani if-else yordamida qiling va natijani ham foydalanuvchiga tushunarli ko'rinishda chiqaring.

JAVOBLAR


In [19]:
otam = {'ismi':'mavlutdin', 'tyil':1954,'viloyat':'samarqand'}
tyil = otam['tyil']
vil = otam['viloyat']
print(f"Otamning ismi {otam['ismi'].title()}, {tyil}-yilda, {vil.title()} viloyatida tug'ilgan")
Otamning ismi Mavlutdin, 1954-yilda, Samarqand viloyatida tug'ilgan
In [20]:
taomlar = {
'ali':'osh',
'vali':'shashlik',
'hasan':"lag'mon",
'husan':"mastava",
'olim':"somsa"
}


taom = taomlar['ali']
print(f"Alining sevimli taomi {taom}")
Alining sevimli taomi osh
In [21]:
python_izohli_lugati = {
'integer':"Butun son",
'float':"O'nlik son",
'string':"Matn",
'list':"Ro'yxat",
'tuple':"O'zgarmas ro'yxat"}

Download 10,21 Mb.

Do'stlaringiz bilan baham:
1   ...   20   21   22   23   24   25   26   27   ...   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