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)
Бұл кодта не дұрыс емес? Оның кемшіліктерін түзетіңіз.