Press "Enter" to skip to content

Python dasturlash tili: 11-dars

Bu qanday ishlaydi:

3. Python dasturlash tili va sintaksisi

Python dasturi bir yoki bir nechta modullardan iborat bo’lishi mumkin. Har bir modul 7 bitli ASCII kodlash bilan mos keladigan shifrlangan matnli fayldir. Eng muhim bitdan foydalanadigan kodlashlar uchun kodlashning nomi aniq ko’rsatilishi kerak. Masalan, sharhlar yoki satrlarning harflari kodlangan modul KOI8 -R, birinchi yoki ikkinchi qatorda quyidagi tavsiflarga ega bo’lishi kerak:

Ushbu spesifikatsiya tufayli Python interperatarori Unicode harflarni Unicode-ga qanday qilib to’g’ri tarjima qilishni biladi. Ushbu chiziqsiz Python-ning yangi versiyalari har bir modul uchun sakkizinchi bit to’plamiga ega kodlar bilan ogohlantiradi.

Qanday qilib dasturni modulli qilish quyidagi bobda ma’lum bo’ladi. Quyidagi misollar faylga yozilgan modullarning ikkala parchasini va Python interperatarori bilan dialog oynasining qismlaridan foydalanadi. Ikkinchisi o’ziga xos taklifnoma bilan ajralib turadi >>> va funt belgisi ( # ) satr oxiriga sharh qoldiradi.

Python-dagi dastur, interperataror nuqtai nazaridan, mantiqiy chiziqlardan iborat. Bitta mantiqiy chiziq, qoida tariqasida, bitta fizik chiziqda joylashgan, ammo uzoq mantiqiy chiziqlar aniq (orqaga burilish chizig’idan foydalangan holda) yoki aniq ravishda (ichki qavs ichida) bir nechta fizik chiziqlarga bo’linishi mumkin:

print (a, “-bu juda mos bo’lmagan juda uzun chiziq”, 80, “tanishish”)

Izoh :

Barcha misollar asosan Python hujjatiga muvofiq Python kod dizaynining “rasmiy” uslubidan foydalanadi Uslublar bo’yicha qo’llanma “ni http://python.org saytida topish mumkin

Asosiy algoritmik konstruktsiyalar

O’quvchilar allaqachon hech bo’lmaganda maktab o’quv dasturi darajasida dasturlash imkoniyatiga ega deb taxmin qilinadi va shuning uchun algoritmik konstruktsiyalar va Python sintaksisi o’rtasida o’xshashliklar qilish kifoya qiladi. Bundan tashqari, Python, qoida tariqasida, dasturchining sezgilariga yo’l qo’ymaydi (hech bo’lmaganda, fan boshlang’ich Python dasturchilarining odatiy xatolarini yaxshi biladi), shuning uchun Python sintaksisini sintaksis diagrammalaridan yoki misollar yordamida o’rganish afzalroq.

Pythonni IDE Shell dan foydalanib an’anaga ko’ra barcha dasturchilar birinchi yozadigan dastur, “Hello World!” dasturini yozamiz.

Buning uchun Shell IDE yuqorisidagi menuda File –> New File bo’limini tanlaymiz (yoki klaviaturada Ctrl+N tugmalarini bosamiz). Math muhrarrirda yangi nom bilan fayli yaratiladi.

Faylni nomlashda quyidagi qoidalarga amal qiling:

  • Fayl nomi qisqa, kichkina lotin harflari bilan va eng muhimi bo’shliq (пробел) qo’ymasdan yozilgan bo’lishi kerak.
  • Fayl nomi .py bilan tugashi kerak (misol uchun py).
  • Faylga ikki so’zdan iborat nom qo’ymoqchi bo’lsangiz so’zlar orasini tire (-) yoki pastki chiziq (_) bilan ajrating. Misol uchun: hello-world.py yoki py.
  • Fayl nomini sonlar bilan boshlamang.

Matn muharririda quyidagi kodni yozamiz:

print() bu Pythondagi mahsus funktsiya bo’lib, () ichida berilgan matn yoki ifodalarni ekranga (konsolga) chiqarish vazifasini bajaradi.

Kodimizni bajarish uchun Run () tugmasini (yoki F5) bosamiz (yangi ochilgan oynada ham Run tugmasini bosamiz) va konsolda natijani ko’ramiz:

Birinchi dasturimiz va uning natijasi.

print() funktsiyasi, Python sintaksi va arifmetik amallar

Quyidagi kodlarni ko’rib chiqamiz.

  1. print(“Salom dasturchi!”)

Dastur natijasi kutilganidek Salom dasturchi! matnini konsolda aks ettirdi.

  1. print(Assalomu alaykum)

Dastur natijasi Assalomu alaykum yozuvi o’rniga, Syntax Error (sintaksisda xatolik) xabari chiqdi. Xatolik qayerda?

Avval aytganimizdek, print() funktsiyasi matn yoki ifodalarni konsolga chiqarish vazifasini bajaradi. Lekin bu funktsiya to’g’ri ishlashi uchun bir nechta qoidalarga amal qilish lozim. Jumladan, agar konsolga matn chiqarmoqchi bo’lsak, matnimiz albatta qo’shtirnoq yoki (” “) yoki birtirnoq(‘ ‘) orasida yozlishi kerak. Demak Assalomu alaykum so’zini konsolda chiqarish uchun to’g’ri kod: print(“Assalomu alaykum”) yozish lozim.

  1. print(‘Men 1 sonli maktabni 9 sinf o’quvchisiman’)

Dastur natijasi Men 1 sonli maktabni 9 sinf o’quvchisiman yozuvi o’rniga, Syntax Error (sintaksisda xatolik) xabari chiqdi. Xatolik qayerda?

Xatolikni oldini olish uchun (‘) o’rniga (“) dan foydalanish lozim yoki matndagi (‘) belgisidan oldin (\) belgisini qo’yish lozim (o\’quvchisiman). o’zgartirishimiz kerak. Umuman olganda \ belgisi har qanday mahsus belgi oldidan qo’yiladi.

  1. Agar matnni bir necha qatorga bo’lib yozish talab qilinsa, uchtalik birtirnoq (appostrof) dan (”’ ”’)foydalanish mumkin:

print(’’’Men 1 sonli maktabni

9 sinf o’quvchisiman’’’)

Qatorga bo’lishning yana bir usuli, qator so’nggida \n belgisini qo’yish.

print(‘Men 1 sonli maktabni \n 9 sinf o’quvchisiman’)

SINTAKSIS XATOLIK (SYNTAX ERROR)

Har bir tilda orfografik va grammatik qoidalar bo’lgani kabi, dasturlash tillarining ham o’ziga yarasha qonun-qoidalari bor. Bu qoidalar to’plami sintaksis (syntax) deb ataladi. Sintaksis xatolik (Syntax Error) deb esa shu qoidalarning buzilishiga aytiladi.

Misol uchun keraksiz joyda qo’yilgan nuqta, vergul yoki bo’sh joy, shuningdek ma’lum funktsiyalar nomini xato yozish (print() o’rniga prit()), ochilmay yoki yopilmay qolgan qavs, noo’rin bo’shliq, qolib ketgan kalit so’z (keyword) kabilar ham Syntax Error hisoblanadi.

Syntax Error eng ko’p uchraydigan xatolik bo’lib, Python bunday xatolik bor dasturlarni bajarmaydi.

ARIFMETIK AMALLAR

Pythonda print() funktsiyasi nafaqat matn, balki turli ifodalarni ham konsolga chiqaradi.

Keling quyidagi kodlarni ham bajaramiz:

Python arifmetik amallarni bajarishda Matematika qoidalariga amal qiladi:

  • Qavs ichidagi amallar qavs ortidagilardan avval bajariladi
  • Darajaga oshirish (ildiz chiqarish) ko’paytirish va bo’lishdan avval bajariladi
  • Ko’paytirish va bo’lish, qo’shish va ayirishdan avval bajariladi
  • Boshqa holatlarda ifodalar chapdan o’ngga qarab bajariladi

Ko’rib turganingizdek, / belgisi bo’lish amalini bajaradi va natija har doim o’nlik son ko’rinishida bo’ladi (agarchi bo’lish amali natijasida butun son xosil bo’lsa ham):

Bo’lish amalidan butun son ko’rinishidagi natija olish uchun // belgisidan foydalanamiz:

Yuqoridagi ** belgisi darajaga oshirishni anglatadi, ya’ni 2**4 ifodasi 2 ning 4-darajasini beradi.

Pythonda oddiy arifmetik amallar quyidagi jadvalda berilgan.

Python dasturlash tili: 11-dars

Ba’zan dastur ishlashi davomida istisno holatlar yuzaga kelishi mumkin. Misol uchun, mavjud bo’lmagan faylni o’qishga bo’lgan harakat yoki dasturdagi no’malum buyruqlar. Bunday holatlar exception’lar yordamida hal qilinadi.

Agar biz print funksiyasini Print shaklida chaqiradigan bo’lsak, python interpretatori bizga sintaksis xatolikni ko’rsatadi.

>>> Print(“Salom dunyo”)

Traceback (most recent call last):

File “”, line 1, in

NameError: name ‘Print’ is not defined

>>> print(“Salom dunyo”)

Salom dunyo

E’tibor bergan bo’lsangiz, NameError xatoligi chiqarildi hamda qayerda shu xatolik qayd qilingani ham ko’rsatildi. Bu holda xatoliklarni qayta ishlovchisi harakatga tushadi.

Exception’lar

Foydalanuvchidan nimadir kiritishini so’raymiz, so’ngra Ctrl + d tugmalarini bosamiz va nima bo’lishini kuzatamiz.

>>> s = input(“Nimadir kiriting –> “)

Nimadir kiriting –> Traceback (most recent call last):

File “”, line 1, in

EOFError

Python EOFError nomli xatolikni chiqardi. Bu xatolik kutilmagan joyda (Ctrl + dtugmalari yordamida kiritiladigan) fayl oxiri (end of file) belgisi qayd qilinganini bildiradi.

Exception – istisnolarni qayta ishlash

Exception’larni try . . except operatori yordamida qayta ishlash mumkin. Bunda hamma odatiy buyruqlar try blokiga joylashtiriladi, istisnolarni qayta ishlovchilari esa except blokiga joylashtiriladi.

Misol: (try_except.py nomi bilan saqlang.)

try: text = input('Nimadir kiriting --> ') except EOFError: print('Nega EOF qildigiz?') except KeyboardInterrupt: print('Siz amallarni bekor qildingiz.') else: print('Siz kiritdingiz.'.format(text))

Nimadir kiriting → # Ctrl + d ni bosing

Nega EOF qildingiz?

Nimadir kiriting → # Ctrl + c ni bosing

Siz amallarni bekor qildingiz.

Nimadir kiriting → xatosiz

Siz xatosiz kiritdingiz.

Bu qanday ishlaydi:

Bu yerda biz istisno/xatolik chaqirishi mumkin bo’lgan barcha buyruqlarni trybloki ichiga joylashtirdik. So’ng except bloki ichiga tegishli istisno/xatolikka mos keluvchi qayta ishlovchilarni joylashtirdik. except ifodasi bitta istisno/xatolikni yoki qavs ichida ko’rsatilgan bir nechta istisno/xatoliklarni qayta ishlashi mumkin. Agar xatolik yoki istisno nomi ko’rsatilmagan bo’lsa, u holda barcha xatolik va istisnolar qayta ishlanadi.

Yodingizda saqlang, try ifodasi uchun hech bo’lmaganda bitta except ifodasi bo’lishi kerak. Aks holda try ishlatishning hech qanday ma’nosi qolmaydi.

Agar xatolik yoki istisno biror except blokida ushlab qolinmasa, u holda pythonning istisnolarni qayta ishlovchisi chaqiriladi va oynaga xatolik haqidagi xabarni chop etadi. Yuqorida bunga misol ko’rdik.

try . . except blokiga else blokini ham qo’shish mumkin. Bu blok hech qanday istisno yuz bermaganda ishga tushadi.

Exception – istino chaqirish

Istisnolarni raise operatori yordamida tegishli xatolik/istisno nomini bergan holda chaqirish mumkin.

Misol: (raising.py nomi bilan saqlang)

class ShortInputException(Exception): '''Foydalanuvchi klass exceptioni.''' def __init__(self, length, atleast): Exception.__init__(self) self.length = length self.atleast = atleast try: text = input("Nimadir kiriting --> ") if len(text) < 3: raise ShortInputException(len(text), 3) # Bu yerda kerakli amallar bajarilishi mumkin. except EOFError: print("Nega EOF qildingiz?") except ShortInputException as ex: print("ShortInputException: Kiritilgan satr uzunligi -- ; minimum kutilgan edi".format(ex.length, ex.atleast)) else: print("Exception bo'lmadi.")

Nimadir kiriting –> a

ShortInputException: Kiritilgan satr uzunligi — 1; minimum 3 uzunlik kutilgan edi

Bu qanday ishlaydi:

Bu yerda biz ShortInputException nomli o'zimizning exception turimizni xosil qildik. U ikkita xususiyatdan (maydon) tashkil topgan: length — kiritilgan satr uzunligini saqlash uchun, atleast — dastur kutgan minimal satr uzunligi.

except blokida biz ShortInputException klasini ko'rsatamiz u o'z navbatidaex o'zgaruvchisiga saqlanadi. ex o'zgaruvchisi esa tegishlik xatolik/exception ob'yektidan tashkil topgan. except bloki ichida length va atleastxususiyatlarini ishlatib foydalanuvchiga tegishli xabarni ko'rsatamiz.

try . . finally

Tasavvur qilaylik, dasturda fayldan o'qib olish amali bor va dastur oxirida shu fayl to'g'ri yopilishi kerak. Bunga finally blokini qo'llash bilan erishish mumkin.

Misol: (finally.py nomi bilan saqlang)

import time try: f = open('poem.txt') while True: # Odatiy fayldan o'qish usuli line = f.readline() if len(line) == 0: break print(line, end='') time.sleep(2) # Bir qancha vaqt kutish except KeyboardInterrupt: print("!! Siz fayldan o'qishni bekor qildingiz.") finally: f.close() print('(Tozalash: Faylni yopish)')

Agar ish zerikarli bo'lsa,

Unga quvnoq tus berish uchun –

^C!! Siz fayldan o'qishni bekor qildingiz.

(Tozalash: Faylni yopish)

Bu qanday ishlaydi:

Bu yerda biz oddiy fayldan o'qib olish amallarini bajaryapmiz. Dastur sekin ishlashi uchun har bir chop qilingan satrdan so'ng dastur 2 sekund uyquga ketadi (python judayam tez ishlaydi). Dasturni to'xtatish yoki bekor qilish uchun dastur bajarilishi jarayonida Ctrl + c bosing.

Kuzatgan bo'lsangiz KeyboardInterrupt istisnosi yuz berdi va dastur bajarilishdan to'xtadi. Ammo dastur bajarilishdan to'xtashidan oldin finally bloki bajarildi va o'qish uchun ochilgan fayl yopildi.

with operatori

Biror bir resursga try blokida murojaat qilib, so'ngra bu resursni finally blokida bo'shatib yuborish odatiy yo'l sifatida ko'riladi. Lekin bu amalni nisbatan qulayroq bajarish uchun with operatoridan foydalanish mumkin.

Misol: (using_with.py nomi bilan saqlang)

with open("poem.txt") as f: for line in f: print(line, end='')

Agar ish zerikarli bo'lsa,

Unga quvnoq tus berish uchun –

Bu qanday ishlaydi:

Natija bundan oldingi misoldagi kabi bo'lishi kerak. Farqi shundaki, biz bu yerda open funksiyasini with operatori bilan ishlatyapmiz va shu bilan faylni avtomat yopishni with operatori zimmasiga yuklayapmiz.

poem.txt fayli teksti.

Agar ish zerikarli bo'lsa,

Unga quvnoq tus berish uchun –

Pythonda xatoliklar bilan ishlash

Har qanday dasturni yozish jarayonida turli xatoliklarga yo‘l qo‘yilishi mumkin. Agar yozilgan dastur tarkibida xato uchraydigan bo‘lsa, u holda dastur ishga tushmaydi va ekranga yo‘l qo‘yilgan xatolik to‘g‘risida xabar chiqadi.

BUNI BILASIZMI?

Dastur tuzish jarayonida qanday xatoliklar yuzaga kelishi mumkin?

Dasturda uchragan xatolikni bartaraf etish mumkinmi?

Python dasturlash tilida xatolik uchrab qolsa, u qanday bartaraf etiladi?

NameError qanday xatolikni anglatadi?

Dasturlash muhitida dastur kodi yozilib, dastur ishga tushirilganda, xatolik haqidagi xabar (SyntaxError) oynasi ekraniga chiqadi. Bu esa dasturning kodida uni ishga tushirishga to‘sqinlik qiluvchi qandaydir xato mavludligini anglatadi.

Dasturlash muhitidagi xatolik va uni tuzatish

Xatolik haqidagi xabar (SyntaxError) oynasida

  • invalid syntax – matnni terishda xatolik bor;
  • unexpected indent – dasturda noto‘gri joy ajratilgan va h. k.).
  • Ok tugmachasini bosib, dastur oynasiga qaytiladi.

Interfaol muhitida yuz bergan xatolik va uni tuzatish

Ba’zan yo‘l qo‘yilgan xatolik interfaol muhitda qizil rang bilan namoyon bo‘ladi. Bunday xatolik dasturning ishga tushishiga to‘sqinlik qiladi.

NameError xatoligi Python dasturida qaysidir so‘z tanilmayotganini anglatadi (masalan, print o‘rniga pront yozilgan) (1).

Dasturlash muhitida xatolik ko‘rsatilgan satrga o‘tib, noto‘g‘ri ko‘rsatilgan buyruq nomi tuzatiladi (4).

Agar interfaol muhitda shunday xatolik yuz bersa, File so‘zi bilan boshlanuvchi satr ustida sichqonchaning o‘ng tugmachasini bosib (2), Go to file/line tanlanadi (3).

Python dasturlash tili muhitida qanday xatoliklar uchrashi mumkin?

Хаtoliklar qanday bartaraf etiladi?

SyntaxError qanday xatolik?

NameError qanday xatolik?

Katta yoki kichik harflar. Agar dasturda bir vaqtda print va Print so‘zlari ishlatilsa, Phyton bu qanday buyruq ekanligini tushunmaydi.

Minus va tagchiziq. Minus (–) va tagchiziq(_) belgilarini adashtirish zinhor mumkin emas.

Bittalik va ikkitalik qo‘shtirnoqlar. Qo‘shtirnoqlarning bu ikkala turini aralashtirib ishlatish mumkin emas. Ochiluvchi qo‘shtirnoq sifatida qaysi biri ishlatilsa, yopishda ham mana shu qo‘shtirnoq ishlatilishi lozim.

Turli qavslar. Qavslarning bir necha turi mavjud: (), <> va [ ]. Ochiluvchi va yopiluvchi qavslar bir-biriga mos bo‘lishi lozim .

QUYIDA BERILGAN DASTURIY

KODDAGI XATOLIKNI TOPING:

Do'stlaringiz bilan baham:

Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2023
ma'muriyatiga murojaat qiling