Python dastrulash tili va dasturlash asoslari
Biz hozir python dasturlash tilini o'rganmoqchimiz. Python high level dasturlash tili (yuqori darajadagi) hisoblanadi. Boshqa bunday high level tillardan mashxurlariga Java, C++, C# va boshqalar misol bo'ladi.
To'gri o'ylayabsiz, high level language bormi demak low level (quyi darajadagi) dasturlash tillari ham bo'lishi kerak. Bularga misol qilib C va Assemblyni keltirish mumkin.
C dastrulash tilini to'liq low level deb atab bo'lmaydi u o'rtada ya'ni low level xususiyatlari ham bor, high level xususiyatlari ham bor.
Ho'p, keling ikkala levelni farqini ko'rib chiqaylik.
Sodda qilib aytadigan bo'lsak, low level dasturlash tillari mashina tili yoki assembli tili deb ham ataladi va kompyuterlar faqat shu tillarnigina tushuna olishadi. Shu sababdan bu tillar kompyuter tushuna oladigan tilga yaqin bo'lganligi uchun low level yani quyi, past, kompyuter tiliga yaqin tillar deyiladi.
Hihg level dasturlash tillari esa odam yani dasturchi tushunishiga oson tillar hisoblanadi. Ular asosan ingliz tilidagi terminlardan foydalanishadi. Masalan, python eng sodda dasturlash tilidir, sababi pythonda kod yozsangiz xuddi ingliz tilida buyruq berganga o'xshaysiz. Masalan, ekranga biron nimani chiqarmoqchi bo'lsangiz print()
funksiyasidan foydalanasiz, bu ingliz tilida chop etmoq degan ma'noni anglatadi. Va bunday misollar juda ko'p.
High level tillar low level tillar ustiga quriladi. Ya'ni misol uchun python dasturlash tili C tilidan foydalanib yaratilgan.
Deyarli barcha bugungi kundagi dasturlar high level tillardan foydalanib yozilgan. Sababi, ularda dastur tuzish oson, qisqa bo'ladi yani siz 0 va 1 lardan foydalanib binary (ikkilik) buyruqlarni kompyuterga aytishingiz shartmas. Va yana bir afzalligi, low level tillar aynan qaysidur operatsion sistema uchun yoziladi yani windows uchun alohida kod, mac yoki linuxga alohida yozish kerak bo'ladi. Hihg level tillarda esa, bunday qilish shart emas, kompaylerlar istalgan OS uchun kodni kompayl qilib bera oladi.
Python interpreter
Pythonga qaytaylik a?
Bizni pythonda yozgan kodlarimiz high level bo'ladi ya'ni bu hali kompyuter tushunmaydi. U tushunishi uchun bizga o'rtada tarjimon kerak, bu xuddi, sizda xitoylik ishchilar bor va siz ularni ishlatish uchun buyruqni o'zbekcha beryapsiz, afsuski xitoyliklar o'zbekchani bilmaydi. Shu vaziyatda siz nima qilasiz, bitta o'zbekcha va xitoychani biladigan tarjimon topib unga buyruqlaringizni xitoy tiliga otarjima qilib berishini so'raysiz va ishizni bitirasiz.
Pythonda ham xuddi shunday, python interpreter bor. Bu pythonda yozilgan kodlarizni yani odam tiliga yaqin kodlarizni mashina kompyuterimiz tushunadigan tilga o'girib beruvchi va kompyuter bbu buyruqlarni bajarishini ta'minlovchi dasturdir.
Buni biz browserga python download deb yozsak va birinchi linkga kirib kerakli faylni yuklab olib kompyuterimizga o'rnatsak bo'ladi.
Keyin biz agar python dasturlash tilini bilsak, kompyuterimizni mazza qilib buyruq berib ishlatamiz. Masalan, mana bu ishni qilib qo'y deb pythonda yozsak keyin, bu yozuvni python interpreterimizga bersak, qarabsizki kompyuterimiz biz aytgan ishlarni terlab, pishib qilib yotibdi, bechara 😅.
Chalg'imaymiz! Interpreterga 2 xil usulda buyruqlarni yetkazsak bo'ladi. Biri so'zma so'z aytish, ikkinchisi hamma buyruqlarni to'plab .py degan faylga joylab berib yuborish. Birinchi yo'l tez bo'ladi, lekin buyrug'ingiz ko'p bo'lsa chalkashmovchiliklar bo'lishi mumkin. Real hayotda ham kimgadur buyruqni og'zaki bersangiz, nimadurni unutib qoldirgan bo'lish ehtimolingiz katta bo'ladi, bu ham xuddi shunga o'xshaydi.
Birinchi yo'lni qilish uchun avval terminalda (windowsda bu cmd) python deb yozamiz, agar python o'rnatilgan bo'lsa, shu pythonni interpreteriga kiradi. Va u yerda ixtioyriy python tushunadigan buyruqlarni bersak bo'ladi:
Ikkinchi yo'li .py kengaytmali fayl ochamizda, shu faylga python tilida buyruqlarni bersak bo'ladi. Asosiy maqsad file ochishdan juda katta hajmdagi kodlar bilan ishlash qulay bo'ladi. Va yozgan kodlarimizni qayta va qayta run qila olamiz, boshqattan yozish shartmas. Bu usulda tassavur qiling men salom.py nomli fayl yaratdim, shu faylni ichida qanaqadur python tilida kod yozdim, qanday run qilaman: terminalda python salom.py deb yozib enter bossam kifoya faylni tepadan pastga qarab o'qib hamma buyruqlarni birin ketin bajaradi.
Dastur nima?
Uff yana noldan tushuntirmoqchimi, man bilaman nimaligini deyotganlar bo'lsa, marhamat qilib shu joyini mayli 2x da o'qishga ruxsat, lekin bir yodga olish zarar qilmaydi.
Dastur - malum bir muammoni (kvadrat tenglamani hisoblash) yechish uchun kompyuterga bajarishi uchun beriladigan instruksiyalar ketma-ketligiga aytiladi. Va bu muammo kompyuter qila oladigan har qanday muammo bo'lishi mumkin.
Har qanday dasturlash tilida quyidagi tushunchalar umumiy hisoblanadi:
-
input - bu user tomonidan dastur tomoniga beriladigan narsa, bu konsoldan kiritiladigan qiymat bo'lishi mumkin, user beradigan fayll bo'lishi mumkin, ixtiyoriy, faqat tashqi tomondan dasturga kiritilishi kerak
-
output - bu dastur run bo'lgandan keyin bizga qaytaradigan qiymat, bu ham, konsolga qanaqadur text qaytarilgan bo'lishi mumkin, yoki misol uchun siz inputga ism familiya yashash joyi, kasbi kabi malumotlarni kiritgan bo'lsez, u sizga bu ma'lumotlardan foydalanib pdf faylda resume generatsiya qilib qaytarishi mumkin. Bular outputga misol bo'la oladi.
De Bugging
Dasturlash odam tomonidan amalga oshirilganligi uchun bazi vaqtlarda dasturlarda errorlarga duch kelish holatlari kuzatiladi. Bu error yoki xatolar dasturlashda bug deb ataladi. Ya'ni bu o'zbekchada qurt degani. Nega aynan ushbu so'zdan foydalanilgan desangiz, oldin 1889 yilda Tomas Eddisonni fonograf degan qurilmasi buzilib qolgan ekan, rosa qidirib aybi nimada ekanligini topa olmaydi, keyin bir payt qurilmani ichida qurtni ko'rib qoladi, uni olib tashlagandan keyin run qilsa ishlab ketadi. Shundan keyin dastur ishlashiga to'sqinlik qiladigan, ishini buzadigan, notog'ri ishlashiga sabab bo'ladigan errorlar bug deb atalishni boshlagan. Kichik sarlavhadagi de bugging degani esa qurtlarni tozalashdek gap. Xullas ertak tamom :).
Applicationda errorlar turli xil bo'lishi mumkin:
- sintaks error
- runtime error
- semantik error
Sintaks errorlar
Python faqatgina biz yozgan buyruq to'g'ri bo'lsagina dasturni run qiladi aks holda ishlamaydi. Chunki u sizni o'rtog'iz emas sh w bilan yozsez yoki bilan so'zini bn deb ketsez tushunvoladigan. (python seni tog'angmas deyarmidi). Pythonga sof adabiy python tilida yozish kerak. Aks holda xato beradi va run bolmaydi.
Runtime errorlar
Yana bir qurt (bug) turi bu runtime errorlardir. Bu errorlar runtimeda bo'ladi, ya'ni kodiz uje run bo'layapti, bu degani sizda sintaks error yo'q degani. Masalan, pythonda quyidagi kod userdan ikkita input son olib birinchisini ikkinchisiga bo'lsin:
son1 = int(input("Son1 ni kirit"))
son2= int(input("Son2 ni kirit"))
bolinma = son1/son2
Ok, sintaks bu yerda to'g'ri, agar men son1 ga 4 son2 ga 2 kiritsam bo'linmaga 2 ni saqlaydi to'g'rimi? Ha, lekin men son1 ga 4 son2 ga qitmirlik qilib 0 kiritsamchi, ana shunda programmamiz gangib qladi, chunki sonni nolga bolish mumkin emas. Va buni kompyuter yaxshi tushunib, bizga hey bor matematikani bir o'qib ke, keyin ishlatasan kompyuterni deydi. Albatta hazil, kompyuter bizga aka adashib ketib nol kiritvordizov degan xatoni qizil tekstda qaytaradi.
Mana shu holat run time error yoki exception deb ham ataladi.
Semantik errorlar
Bu turdagi errorlar ashaddiy errorlar hisoblanadi. Yani buni payqash juda qiyin. Sababi, yuqoridagi 2 ta error hosil bo'lgan taqdirda bizga kompyuter qizil harflar bilan nima bo'lganini tushuntirishga harakat qiladi. A bu error turida bo'lsa hech qanday tushuntirish yo'q. Hamma narsa o'z holida ishlayapti, faqatgina biz kutgan natijani olmaymiz.
Masalan, biz 2 ta sonni bir biriga qo'shadigan dastur tuzaylik:
son1 = input("son1 ni kirit")
son2 = input("son2 ni kirit")
yigindi = son1+son2
print("yigindi:", yigindi)
Ushbu dastur xatosiz ishlaydi, lekin agar men konsoldan son1 ga 3 va son2 ga 5 kiritsam u menga 35 ni konsolga chiqarib beradi. Bu to'g'rimi, biz 8 kutayotgandikku? Nima xato qildik? Kompyuter ham indamay qo'shib berdi. Qayerdan olyapti 35 ni?
Xato shundaki, biz userdan input orqli qiymat olganimizda u bizga har doim string tipidagi malumotni qaytaradi va bizning holatda son1 va son2 lar stringlardir. Stringlarni bir-biriga qo'shganda ularni yonma yon yozib qo'yadi.
Debugging qila olish, ya'ni qayerda nima xato bo'layotganini topa olish bu dasturchilar orasida juda qadrlanadigan skill (mahorat) hisoblanadi!
Pythondagi birinchi dastur
Va nihoyat o'sha onlar keldi, birinchi dasturimizni yozamiz. Har doimgidek, salom, dunyo! so'zini konsolga chiqaraylik:
print('hello world')
Tugadi. Ha judayam oson va tushunarli.
Pythonda komment qoldirish
Komment bu dasturni mashina tushunadigan tilga o'girilayotgan paytda etiborsiz qoldiriladigan ayani skip qilib komment olingan qismni o'qimasdan ketadigan qismi.
Nimaga kerak, biz kod yozdik va ko'p hollarda yozgan kodimizga o'zimiz tuhsunamiz xolos, shu vaqtda kodni tepasiga bu kod mana bu vazifani bajaryapti deb ketsak, keyinchalik bizni kodni o'qigan boshqa dasturchi baraka top, yaxshiyam komment yozibsan deb ketadi.
Pythonda komment yozish uchun # belgisidan keyin yozish kerak, yoki shu belgidan keyin yozilganlar komment sifatida qabul qilinadi.
Masalan:
# bu salom dunyo so'zini ekranga chiqaryapti faqat ingliz tilida
print("hello world")
Xulosa
Maqoladan xulosa qiladigan bo'lsak, ushbu maqolada:
- 1294 ta so'z
- 9714 ta belgi
- 125 ta gap
yozibman.
Foydali bo'ldi degan umiddaman. Bularni bari sizlar uchun edi!