AI Ustoz UZ: sun’iy intellektni o‘zbek tilida o‘rganing

Kodni sinash va xatoni topish

O‘rta daraja · 3-dars · taxminan 14 daqiqa

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 otdi

Odatiy 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; assert bilan 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
  1. range(n) 0 dan n-1 gacha sanaydi: 1 dan n gacha uchun range(1, n + 1) kerak. (to‘g‘ri javob)oxirgi qiymat kiritilmaydi, boshlanishi esa 0.
  2. range faqat juft sonlar bilan ishlaydi.bunday cheklov yo‘q.
  3. Xato yo‘q, kod to‘g‘ri.natija bittaga kam yoki ko‘p chiqadi.

Kod mashqlari

  1. 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 uchun range(1, n + 1).
  2. ortacha([]) xato bermasin: ro‘yxat bo‘sh bo‘lsa 0 qaytarsin. Qolgan holatlar o‘zgarmasin.
    Maslahat: Funksiya boshida if not royxat: deb bo‘shlikni tekshiring va return 0 qiling.

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.