Kodni sinash va xatoni topish
Kod «ishlayapti» degani to‘g‘ri degani emas. Sinash uchun misollarni oldindan yozing va natijani solishtiring. Python’da assert shart shart noto‘g‘ri bo‘lsa xato beradi: kichik testlar uchun qulay.
def kvadrat(son):
return son * son
assert kvadrat(3) == 9
assert kvadrat(-2) == 4
assert kvadrat(0) == 0
print("hamma testlar otdi")Natijahamma testlar otdiOdatiy xatolar: bittaga adashish (masalan, range(n) 0 dan n-1 gacha, range(1, n + 1) esa 1 dan n gacha) va bo‘sh kirish (bo‘sh ro‘yxatda o‘rtachani hisoblash nolga bo‘lishga olib keladi). Sun’iy intellekt yozgan kodda ham aynan shunday xatolar uchraydi.
Xatoni topganda uni bitta kichik misolda takrorlang, sababini aniqlang va faqat shu joyni tuzating. So‘ng barcha misollarni qayta sinang: tuzatish boshqa joyni buzmasligi kerak.
Esda tuting
- Misollarni oldindan yozing;
assertbilan sinang. - Odatiy xatolar: bittaga adashish va bo‘sh kirish.
- Tuzatgandan keyin hamma misollarni qayta sinang.
Mashq
range(n) yordamida 1 dan n gacha sonlarni sanamoqchisiz. Nima xato?
Javob va izoh
range(n)0 dan n-1 gacha sanaydi: 1 dan n gacha uchunrange(1, n + 1)kerak. (to‘g‘ri javob)oxirgi qiymat kiritilmaydi, boshlanishi esa 0.rangefaqat juft sonlar bilan ishlaydi.bunday cheklov yo‘q.- Xato yo‘q, kod to‘g‘ri.natija bittaga kam yoki ko‘p chiqadi.
Kod mashqlari
yigindi(n)funksiyasi 1 dan n gacha sonlar yig‘indisini hisoblashi kerak, lekin xato natija beryapti. Xatoni toping va tuzating.
Maslahat:range(n)0 dan n-1 gacha sanaydi. 1 dan n gacha uchunrange(1, n + 1).ortacha([])xato bermasin: ro‘yxat bo‘sh bo‘lsa 0 qaytarsin. Qolgan holatlar o‘zgarmasin.
Maslahat: Funksiya boshidaif not royxat:deb bo‘shlikni tekshiring vareturn 0qiling.
Mashqni ilovada bajaring.
Amaliy vazifa
Oldingi darsdagi funksiyalardan biri uchun 3 ta assert yozing (bittasi chegaraviy holat uchun) va ishga tushiring.
- 3 ta assert yozdim
- Bittasi chegaraviy holat uchun
Lug‘at
Interaktiv rejim: qidiruv, progress va Python mashqlari.
