1-dars: Programma va interpretator
1-blokMashina buyruqni qanday tushunadi1–4 darslar
Bu darsdan keyin siz
- programma nima ekanini o’z so’zingiz bilan aytib bera olasiz
- interpretator kodni qanday bajarishini qadam-qadam ko’rsatasiz
- birinchi Python programmangizni yozib, xatosini o’qiysiz
Nazariya
“Nazariya” bo'limiga havolaProgramma — oddiy matn
“Programma — oddiy matn” bo'limiga havolaSiz yozadigan kod — sehrli narsa emas, oddiy matn fayli. Osh retsepti qog’ozda qanday
tursa, programma ham .py faylida shunday turadi. Farqi bitta: retseptni odam o’qiydi
va “bir chimdim tuz”ni o’zi chamalaydi, programmani esa mashina o’qiydi — unga chamalash
berilmagan.
programmaprogram
Kompyuter bajarishi uchun yozilgan buyruqlar ketma-ketligi. Python’da bu oddiy
matn fayli bo’lib, nomi .py bilan tugaydi.
Interpretator — qatorma-qator bajaruvchi
“Interpretator — qatorma-qator bajaruvchi” bo'limiga havolaKompyuterning o’zi Python tilini tushunmaydi — u faqat protsessor buyruqlarini bajaradi. O’rtada tarjimon turadi: interpretator faylingizni birinchi qatordan boshlab o’qiydi va har qatorni darhol bajaradi. Xato uchragan joyda to’xtaydi va qaysi qatorda nima yoqmaganini aytadi.
interpretatorinterpreter
Kod matnini qatorma-qator o’qib, har qatorni darhol bajaradigan programma.
Siz python salom.py deb yozganingizda aynan u ishga tushadi.
Kompyuter tushunmaydi — bajaradi
“Kompyuter tushunmaydi — bajaradi” bo'limiga havolaOdam “uch marta oldinga yur” desangiz, devor oldida o’zi to’xtaydi. Kompyuter to’xtamaydi: yozilgan bo’lsa — bajaradi, devorga urilsa — bu sizning xatoingiz. Shu qat’iylik aslida kuch: mashina hech narsani “o’zicha tushunib” buzmaydi.
Bashorat qiling
“Bashorat qiling” bo'limiga havolaKod ishga tushirilishidan oldin natijani yozish — bu darslikdagi asosiy odat. Bashoratingiz natijadan farq qilsa, xursand bo’ling: o’rganish aynan shu yerda boshlanadi.
Avval o'ylang: bu kod nima chiqaradi? Ishga tushirishdan oldin yozing.
print("Salom, dunyo!")print("Men Python o'rganyapman")Haqiqiy natija:
Salom, dunyo! Men Python o'rganyapman
Interpretator qatorlarni yuqoridan pastga bajaradi: avval birinchi print, keyin ikkinchisi. Har print o'z matnini alohida qatorga chiqaradi.
Javobni ko'rish
Salom, dunyo! Men Python o'rganyapman
Interpretator qatorlarni yuqoridan pastga bajaradi: avval birinchi print, keyin ikkinchisi. Har print o'z matnini alohida qatorga chiqaradi.
Avval o'ylang: bu kod nima chiqaradi? Ishga tushirishdan oldin yozing.
print(2 + 3)print("2 + 3")Haqiqiy natija:
5 2 + 3
Qo'shtirnoqsiz 2 + 3 — hisoblanadigan ifoda, interpretator uni 5 ga aylantiradi. Qo'shtirnoq ichidagi 2 + 3 esa oddiy matn: interpretator matn ichiga qaramaydi.
Javobni ko'rish
5 2 + 3
Qo'shtirnoqsiz 2 + 3 — hisoblanadigan ifoda, interpretator uni 5 ga aylantiradi. Qo'shtirnoq ichidagi 2 + 3 esa oddiy matn: interpretator matn ichiga qaramaydi.
Sinab ko’r
“Sinab ko’r” bo'limiga havolaPython yozishdan oldin programmalashning o’zagini his qiling: quyidagi robot faqat uch buyruqni biladi va ularni yozilgan tartibda, so’zsiz bajaradi.
Robot Karel
Buyruqlar ro'yxatini tuzing va robotni bayroqqa yetkazing. Klaviatura: Enter — bajar, → — bitta qadam.
Bu simulyatorda panjara ustida robot bor. Siz unga "Oldinga", "Chapga buril", "O'ngga buril" buyruqlaridan ro'yxat tuzasiz — robot ularni yozilgan tartibda bajaradi. Devorga urilsa, programma o'sha yerda to'xtaydi.
JavaScript'siz sinash: katak qog'ozga 6×4 maydon chizing, robotni chap pastki burchakka qo'ying va do'stingizga faqat shu uch buyruq bilan yo'l ayting — do'stingiz esa ataylab "aqlsiz" bo'lib, faqat aytilganini bajarsin.
Buyruqlarni qo'shing, keyin «Bajar» tugmasini bosing.
Robot devorga urilganda “aqlsizligi” uchun emas, programma xato bo’lgani uchun to’xtadi. Python ham xuddi shunday ishlaydi — faqat buyruqlari boshqa.
Xatoni toping
“Xatoni toping” bo'limiga havolaBu kod ataylab buzuq — xatoni toping
print("Salom)Python shunday javob beradi:
File "salom.py", line 1
print("Salom)
^
SyntaxError: unterminated string literal (detected at line 1)Sababi va tuzatish
Qo'shtirnoq ochildi, lekin yopilmadi. Interpretator matn qayerda tugashini bilolmay qoldi va ishni boshlamasdanoq to'xtadi.
To’g’risi: print("Salom"). Traceback’dagi ^ belgisi xato taxminan qayerdaligini
ko’rsatadi — unga qarashni birinchi darsdan odat qiling.
O’zingizni sinang
“O’zingizni sinang” bo'limiga havola1Programma bilan osh retseptining o'xshash va farqli tomoni nimada?
Javobni ko'rish
Ikkalasi ham buyruqlar ketma-ketligi. Farqi: retseptni odam o’qiydi va noaniq joyni o’zi to’ldiradi, programmani mashina bajaradi — unda noaniqlikka o’rin yo’q.
2Interpretator nima qiladi va qachon to'xtaydi?
Javobni ko'rish
Kod faylini birinchi qatordan boshlab o’qiydi va har qatorni darhol bajaradi. Xato uchragan qatorda to’xtab, xato xabarini chiqaradi.
3print(4 + 5) bilan print("4 + 5") nimasi bilan farq qiladi?
Javobni ko'rish
Birinchisi ifodani hisoblab 9 chiqaradi. Ikkinchisida qo’shtirnoq bor —
bu matn, interpretator uni hisoblamaydi va ekranga 4 + 5 deb yozadi.
4Robot Karel simulyatorida robot devorga urilib to'xtadi. Ayb kimda?
Javobni ko'rish
Programmada. Robot faqat yozilgan buyruqlarni bajardi — kompyuter siz nazarda tutganingizni emas, yozganingizni bajaradi.
5Python fayli qanday kengaytma bilan tugaydi va uni qaysi buyruq ishga tushiradi?
Javobni ko'rish
Fayl .py bilan tugaydi, masalan salom.py. Terminalda
python salom.py deb yozilsa, interpretator uni bajaradi.
Topshiriq
“Topshiriq” bo'limiga havolaTopshiriq — darajangizni tanlang
Asos · 5–7-sinf — Vizual va aniq ko'rsatmali
VS Code’da men.py fayli yarating va o’zingiz haqingizda uch qator chiqaring:
ismingiz, yoshingiz, sevimli mashg’ulotingiz — har biri alohida print bilan.
Keyin qog’ozda: Robot Karel’dagi uch buyruq bilan uydan maktabgacha “programma”
yozing (10–15 buyruq yetadi) va uni sinfdoshingizga “robot bo’lib” bajartiring.
Mustahkam · 8–9-sinf — Matnli masala, o'zingiz tuzasiz
To’rtta print qatoridan iborat programma yozing: choy damlash tartibi. Keyin
qatorlarni ataylab aralashtirib ishga tushiring va natijani solishtiring —
tartib nega muhimligini bir gapda yozib keling. Bonus: print bilan
yulduzchalardan 4 qatorli kichik shakl chizing.
Chuqur · 10–11-sinf — Algoritmik, chegara holatlari bilan
Uch qatorli programma yozing, ikkinchi qatorida ataylab xato qiling (masalan, yopilmagan qo’shtirnoq). Ishga tushirishdan OLDIN yozib qo’ying: birinchi qator bajariladimi? Tekshiring va kuzatganingizni tushuntiring. Qo’shimcha savol: interpretator kompilyatordan nimasi bilan farq qilishini bir paragrafda yozing — bu farq 17-darsdagi xato tuzatishda asqotadi.
Darsni belgilash uchun JavaScript kerak. Bu progressni saqlash uchun ishlatiladi — darslikning o'zi JavaScript'siz ham to'liq o'qiladi.