Asosiy mazmunga o'tish

Python Basic — kutilgan xatolar va ularni tushuntirish

Bu sahifa darsga tayyorgarlik uchun. Har dars uchun eng ko’p uchraydigan xato, uning haqiqiy sababi va sinfda ishlaydigan tushuntirish yozilgan.

Xato Sabab Tushuntirish
python topilmadi Add Python to PATH belgilanmagan Qayta o’rnatish. Batafsil: muhit muammolari
Faylni papkasiz ochish «Fayl» va «papka» farqi tushunilmagan Papka — ish stoli, fayl — undagi qog’oz. VS Code ish stolini ochadi
Fayl nomi kirillda Klaviatura tili Nom lotin harflarida, bo’shliqsiz. dars-01.py

1-dars. Eng ko’p: qo’shtirnoq yopilmaydi yoki qavs tushib qoladi. Sabab — kod matn ekani hali odat bo’lmagan. Tushuntirish: SyntaxError ning qator raqamini ko’rsatib, “Python shu joyga kelganda tushunmadi” deb ayting. Xato oldingi qatorda bo’lishi ham mumkin — buni alohida aytish kerak.

2-dars. a = b ni “nusxa oldim” deb tushunish. Sabab — quti modeli maktabda ko’p ishlatiladi. Tushuntirish: id() ni ikki nom uchun chop etib ko’rsatish. Sonlar bilan bu xavfsiz bo’lgani uchun o’quvchi 9-darsgacha xatosini sezmaydi — shuning uchun 2-darsda “9-darsda qaytamiz” deb aytib qo’yiladi.

3-dars. / va // ni chalkashtirish; 0.1 + 0.2 natijasidan hayron bo’lish. Tushuntirish: pulni bo’lish misoli — 100 000 so’mni 7 kishiga bo’lsangiz, har biriga //, qolgani %. Kasr son masalasi CF 3-darsdan keladi.

4-dars. Modulning eng ko’p uchraydigan xatosi: input() natijasini son deb ishlatish. Tushuntirish: type(input(...)) ni chop etib ko’rsatish. “5 kiritdim, lekin bu «5»” — qo’shtirnoqni doskaga yozib ajratib ko’rsating.

5-dars. elif tartibini buzish va = bilan == ni chalkashtirish. Tushuntirish: 95 ballni o’sha buzuq tartibga qo’yib, natijani ko’rsatish. = bog’laydi, == so’raydi — bu ikki boshqa amal.

6-dars. Cheksiz sikl: hisoblagichni oshirish esdan chiqadi. Tushuntirish: Ctrl+C ni oldindan o’rgatib qo’yish, keyin uch qismni doskada belgilash — qaysi biri yo’q?

7-dars. range(5) ni 1–5 deb o’ylash. Tushuntirish: list(range(5)) ni chop etib ko’rsatish. Bundan tashqari maksimumni eng = 0 dan boshlash — manfiy sonlar bilan sinab ko’rsatiladi.

8-dars. Ichki va tashqi hisoblagichni almashtirish (i va j). Tushuntirish: ikkalasini bir vaqtda chop etish — print(i, j) — va jadvalni kuzatish.

9-dars — blokning eng og’iri. b = a dan keyin b.append() a ni ham o’zgartiradi. Sabab: 2-darsdagi yorliq modeli hali o’rnashmagan. Tushuntirish ketma-ketligi: (1) id(a) va id(b) teng ekanini ko’rsatish, (2) simulyatordagi ikki strelkani bir obyektga ko’rsatish, (3) copy() bilan id o’zgarishini ko’rsatish. Uchtasi ham bajarilishi kerak — bittasi yetmaydi.

10-dars. s[0] = «S» yozishga urinish. Tushuntirish: TypeError matnini o’qish va “satr o’zgarmas, shuning uchun yangisi yasaladi” degan gapni «S» + s[1:] bilan ko’rsatish. Slicingda oxirgi indeks kirmasligini range bilan bog’lash foydali.

11-dars. Lug’atga indeks bilan murojaat (jurnal[0]). Tushuntirish: lug’atda tartib murojaat uchun ishlatilmaydi; KeyError matnini o’qish. get() ni ko’rsatish.

12-dars. Qavat sonini chalkashtirish: baholar[«Aziza»][1] da qaysi qavat nima. Tushuntirish: har qadamdan keyin print(type(...)) — bu odatni shu darsda o’rnatish kerak, keyingi darslarda ish beradi.

13-dars — blokning eng og’iri. print o’rniga return yozilmaydi. Tushuntirish: simulyatorning uchinchi qadamini ko’rsatish — natija ga None yozilgan joy. Keyin print(natija) bilan None ni o’z ko’zi bilan ko’rsatish. “Ekranda 25 chiqqani chalg’itdi” degan gapni aytib qo’yish kerak.

14-dars. Funksiya ichida global o’zgaruvchini o’zgartirishga urinish va UnboundLocalError. Tushuntirish: Python funksiya tanasini oldindan ko’rib chiqishi — jami = ... uchradi, demak lokal. Yechim: parametr orqali berish (global emas).

15-dars. Bazaviy holatni yozmaslik yoki unga yetib bo’lmaydigan shart qo’yish (if n == 0 bo’lsa-da, kamayt(-5) chaqirilsa). Tushuntirish: “Bazasiz” variantini ko’rsatish, keyin shartni n < 0 ga o’zgartirib qayta sinash.

16-dars. Faylni random.py deb nomlash va AttributeError olish. Tushuntirish: simulyatorning uchinchi variantini ko’rsatish. Qo’shimcha: __pycache__ papkasini o’chirish kerak bo’lishi.

17-dars. Traceback ni yuqoridan o’qish va “hech narsa tushunmadim” deyish. Tushuntirish: bir marta o’zingiz pastdan yuqoriga o’qib bering — ovoz chiqarib, har qatorni nomlab. Bir marta yetadi, keyin odat bo’ladi.

18-dars. Fayl oxiridagi bo’sh qator. Sabab: matn muharriri oxirgi qatordan keyin \n qo’yadi va bu ko’rinmaydi. Tushuntirish: faylni ochib, kursorni oxirgi qatordan pastga tushirib ko’rsatish — bo’sh qator bor. Keyin len(qismlar) ni chop etish.

19-dars. “Testim o’tdi, demak kod to’g’ri”. Tushuntirish: simulyatorda uchta test ikki versiyada ham o’tadi. Savolni o’zgartirish kerak: “bu test qanday xatoni ushlay oladi?”

20-dars. AI kodini tekshirmasdan qabul qilish. Tushuntirish: uch buzuq kodni ko’rsatish va ularning uchalasi ham oddiy sinovda ishlashini ta’kidlash. Chegara holati ro’yxatini doskaga yozib qo’yish: bo’sh, nol, manfiy, ikkinchi chaqiruv.


Chekinish buzilishi (IndentationError). Tab va bo’shliq aralashgan. Yechim bir marta va butun sinf uchun: settings.json da "editor.insertSpaces": true va "editor.tabSize": 4. 0-darsda sozlangan.

Xato xabarini o’qimaslik. O’quvchi xato chiqishi bilan qo’l ko’taradi. Qoida: avval xato turining nomini o’qib bering, keyin qator raqamini. Ikki so’rovdan keyin ko’p o’quvchi o’zi topadi.

Kodni tushunmasdan ko’chirish. Doskadan ko’chirilgan kod ishlaydi, lekin model qurilmaydi. Qarshi chora — <KodBashorat> blokini tashlab ketmaslik: bashorat yozilmagan bo’lsa, kod ishga tushirilmaydi.