Asosiy mazmunga o'tish

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

Siz 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.

Kompyuterning 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.

Odam “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.

Kod 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.

Bashorat qiling
print("Salom, dunyo!")print("Men Python o'rganyapman")
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.

Bashorat qiling
print(2 + 3)print("2 + 3")
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.

Python 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.

    Bu kod ataylab buzuq — xatoni toping

    Buzuq kod
    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.

    1Programma 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 — 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.