Python'до кырсыктарды кармоо
Python башка программалоо тилдерине салыштырмалуу көптөгөн кырсыктарды чакыруучу учурларга ээ.
Келгиле, аларды толук көрөлү. Биздин тизмебиз болсун:
lst = [1, 2, 3]
Тизмеде жок элементине кайрылалы:
print(lts[4])
Код аткарылгандан кийин ката (кырсык) чыгат:
IndexError: list index out of range
Эгерде бизге кырсыксыз иштөөнү улантуу керек
болсо, аны try-except конструкциясы
менен каршы алышыбыз керек. Анын синтаксиси
төмөнкүдөй:
try:
# кырсык чакыруучу код
except:
# катаны иштетүү
try блогуна кырсыкты камтышы мүмкүн
болгон кодду жайгаштыруу керек. Эгерде
ушул код аткарылып жатканда кырсыктуу
учур жаралса, анда коддун аткарылышы
токтобойт, тескерисинче except
блокундагы кодго өтөт. Ушул блокто
пайда болгон катанын мүнөзүн мүмкүн болушунча
так сүрөттөгөн билдирмени чыгарууну жазуу
керек.
Эгерде try блогу аткарылып жатканда
эч кандай кырсыктуу учур болбосо, анда
пайдалуу код жөнөкөй эле аткарылат, ал
эми except блокундагы код аткарылбайт.
Келгиле, тизмеде жок элементине кайрылгандагы
кырсыкты каршы алалы. Бул үчүн try
блокко мүмкүн болгон катасы бар кодду
жайгаштырабыз. Ал эми except блокто
консольго 'error: elem is not exist'
деген билдирмени чыгарууну көрсөтөбүз:
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
Код аткарылгандан кийин төмөнкүсү чыгат:
'error: elem is not exist'
try-except конструкциясын үйрөнгөндөн
кийин, сиз жазган коддун стили өзгөрүшү керек.
Эми кырсыктуу учур жарала турган бардык
жерлерди try ичине ороп коюу керек,
ал эми except блокто ушул кырсыкка
реакцияны жазуу керек.
Колдонуучудан эки сан сураңыз. Бирин экинчисине бөлүңүз. Нөлгө бөлүү кырсыгын кармаңыз.
Колдонуучудан сан сураңыз. Ушул сандан квадраттык тамырды табыңыз. Терс сандан тамыр чыгаруу кырсыгын кармаңыз.
Тизме берилген. Колдонуучудан бүтүн сан сураңыз. Колдонуучу киргизген номердеги тизме элементин алыңыз. Колдонуучу тизме диапазонунан тышкары сан киргизсе жаралуучу кырсыкты кармаңыз.
Төмөнкү код берилген:
num = '5'
res = num + 2
print(res)
Бул коддо эмне туура эмес? Анын кемчиликтерин оңдоп бериңиз.
Төмөнкү код берилген:
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
Бул коддо эмне туура эмес? Анын кемчиликтерин оңдоп бериңиз.