Python dasturlash tili: 4-dars
‘yoki’ bit operatori
Dasturlashni o’rganish – Qo’llanma 2023
Dasturlashni qayerdan boshlashni bilmay boshingiz qotdimi? Ushbu maqolani o’qishni boshlab juda to’g’ri tanlov qilibsiz. Chunki oldingizda uzundan uzoq yo’lni bosib o’tishingiz kerak. Uzoq masofadagi maqsadga erishish uchun “qo’llanma” yoki “reja” tuzib olmasangiz, ko’zlangan maqsadga erishish qiyin bo’ladi.
0-Qadam. Ishtiyoq
Sizga komputer, telefonlar, web sahifalar qanday ishlashi juda qiziq. Ular qanday texnologiyalar asosida ishlanishini har doim qiziqarli bo’lib kelgan. Demak, sizda oz bo’lsa ham dasturlashni o’rganishga moyillik bor. Bu qadam juda muhim ro’l o’ynaydi. Agar kelajakda o’zingizni dasturlash sohasida ko’zingiz yetmasa, demak bu yo’nalish siz uchun emas. O’zingiz rostdan ham yoqtirgan soha haqida o’ylab ko’rishni tavsiya qilaman.
1-Qadam.
Tabriklayman! Siz juda muhim bosqichdan o’tdingiz, endi bizning dasturlash sohasidagi mashaqqatli sayohatimiz haqida so’zlashsak ham bo’ladi. Ushbu sayohatimiz 3-4 oy davom etadi deb o’ylayotgan bo’lsangiz adashasiz. O’z sohamizdagi usta bo’lishimiz uchun yaxshigina siz bilan mehnat qilamiz, qiyinchiliklardan o’tamiz, ter to’kamiz…
Oldimizda juda uzoq sayohat bor
Dasturlashni o’rganishdan oldin ingliz tilini o’rganib olish zarar qilmaydi. Chunki, sayohatimiz davomida turli xil muammolarga duch kelamiz. Shunda, ‘Google’ amakimizdan osongina ‘How to …’ orqali savollarga javob olish mumkin. Bundan tashqari dasturlash tili yoki turli texnologiyalarni o’rganishda ularning rasmiy saytidan ma’lumotlar o’qishga to’g’ri keladi. Shuning uchun dasturlashdan oldin, ingliz tilini oz bo’lsa ham o’rganishingizni maslahat beraman.
2-Qadam. Front End
Demak, dasturlashni endi qayerdan o’rganishni boshlash kerakligi haqida so’zlashaylik. Boshlanishiga oddiy statik ko’rinishdagi websayt tuzishni maslahat beraman. Men ham dasturlashga qiziqishim oddiy mobil websaytlar tuzish bilan boshlaganman. Chunki, bu juda oson, oddiygina “Notepad” dasturi orqali o’zingizning “Salom Dunyo” dasturini yaratasiz. Bu bosqichda siz HTML va CSS dasturlash tillarini o’rganib olasiz.
HTML ni o’rgandim. Dunyodagi eng zo’r dasturchiman
Ushbu bosqich uzoq muddatga cho’zilmaydi. Yuqorida aytilgan dasturlash tilidan foydalanib o’zingizni shaxsiy web sahifangiz tuzing. Bu juda qiziqarli.
O’rganish uchun esa hozir juda ko’p darsliklar yoki o’quv markazlari bor. HTML, CSS texnologiyalar o’rganishni Youtube dagi inglizcha yoki o’zbekcha darsliklardan ham o’rganib olashinigz mumkin(maqola ohirida o’rganish uchun resurslar mavjud).
3-Qadam. Yo’nalish tanlash
Dasturlash sohasida turli xil kasb egalari mavjud. Masalan, web developer, Mobile developer, Frontend, Backend, … . Ushbu bosqichda siz o’zingizga yoqqan yo’nalishni tanlab, kerakli dasturlash tillarini o’rganish kerak bo’ladi.
- Frontend developer – web sahifalarni ko’rinishi tuzish
- HTML
- CSS
- Javascript
- Turli frameworklar(React JS, Vue JS)
- PHP(Laravel, Yii)
- Javascript(Node JS)
- Python(Django)
- Golang (Gin, Gorilla mux)
- Bu dasturlash tillaridan birini o’rgangan holda Backend ni o’rganish mumkin
- Ma’lumotlar bazasi uchun tillar(Mysql, Postgresql, MongoDB)
- Java/Kotlin(Android)
- Swift(iOS)
- Flutter(Android, iOS)
- React Native(Android, iOS)
- O’zingizga yoqqan Android yoki iOS sistemasi tanlab, yuqoridagi tillardan birini o’rganing
4-Qadam. Algoritmlar, Data Structure
O’tgan bosqichda o’zingiz mustaqil ravishda turli dasturlar tuza oldingizmi? Juda yaxshi. Endi biz ‘Computer Science’ haqida gaplashsak ham bo’ladi. Bu sohada fanlar juda ko’p: OOP, Data Structure(Graph, Tree, Finding shortest path), Algorithms, Database, … . Keling boshlanishiga oddiy algoritmlar tuzishni o’rganaylik. Masalan, berilgan sonning juft yoki toqligi hisoblab beradigan dastur. Bu algoritmni tuzish uchun C++, C, Java, Python, Go, … kabi yuqori bosqichlik dasturlash tillaridan biridan foydalanamiz. Algorithm yoki Data Structure masalarini yechish nimaga kerak deb o’ylayotgan bo’lishingiz mumkin. Asosan, katta nufuzli IT kompaniyalarning suhbat jarayonida ushbu turdagi masalarni yechib berishingizni so’raydi. Ushbu masalalarni turli xil saytlarda yechishni mashq qilsangiz bo’ladi.
- Hackerrank.com
- RoboContest.uz (o’zbekcha)
- Leetcode.com
- Project Euler
Xulosa
Dasturlash sohasi juda keng. Qancha suhbatlashsak shuncha kam. Ushbu maqolada o’zingiz uchun foydali ma’lumot oldingiz deb umid qilaman. Ba’zan o’zingizda motivatsiya yoqolib qolsa, o’rganishda davom eting, doimo o’zingiz ustingizda ishlang. ✌️ Omad!
O’rganish uchun o’zbekcha video darsliklar:
Python dasturlash tili: 4-dars.
Dasturdagi ko’p amallar (mantiqiy qatorlar) ifodalardan tashkil topgan. Bunga oddiy misol: 2 + 3. Ifodani operatorlar va operandlarga ajratish mumkin.
Operator – bu biror amalni bajaruvchi va simvol yordamida yoki zaxiraga olingan so’zlar yordamida ifodalanadigan funksional.
Operatorlar qiymatlar ustida biror amalni bajaradi va bu qiymatlar operandlar deyiladi. Bizning xolatda 2 va 3 – bu operandlar.
Operatorlar
Operatorlar va ularning qo’llanilishini qisqacha ko’rib chiqamiz. Misol uchun,
2 + 3 ifodani tekshirib ko’rish uchun interaktiv interpretatordan foydalanishimiz mumkin.
Operatorlar va ularning qo’llanilishi
Operator
Nomlanishi
Ta’rifi
Misol
Ikkita ob’yektning yig’indisini hisoblaydi
3 + 5 ifoda 8 ni beradi;
‘a’ + ‘b’ ifoda ‘ab’ ni beradi.
Ikkata sonning farqini beradi. Agar birinchi operand mavjud bo’lmasa, uning qiymati 0 ga teng deb olib ketiladi.
-5.2 manfiy qiymat beradi,
50 – 24 ning qiymati esa 26 ga teng.
Ikkita son ko’paytmasini beradi yoki satrni ko’rsatilgan miqdorda takrorlangan yangi satrni qaytaradi.
2 * 3 ifoda 6 beradi.
‘xa’ * 3 ifoda ‘xaxaxa’ ni qaytaradi.
x sonini y darajaga ko’tarilganda hosil bo’lgan qiymatni qaytaradi.
3**4 ifoda 81 ni qaytaradi (ya’ni 3*3*3*3)
‘x’ ni ‘y’ ga bo’lganda hosil bo’lgan bo’linmani qaytaradi.
4 / 3 ifoda 1.3333333333333333 ni beradi.
Bo’lishdan hosil bo’lgan bo’linmaning qoldiqsiz butun qismini qaytaradi.
4 // 3 ifoda 1 ni qaytaradi.
Bo’lishdan hosil bo’lgan qoldiqni qaytaradi.
8 % 3 ifoda 2 ni beradi.
-25.5 % 2.25 ifoda 1.5 ni beradi.
Bit sonni chapga ko’rsatilgan miqdorda suradi.
Bit sonni o’ngga ko’rsatilgan miqdorda suradi.
‘Va’ bit operatori
Sonlar ustida ‘va’ bit operatsiyasini bajaradi.
5 & 3 ifoda 1 ni beradi
‘Yoki’ bit operatori (Побитовое ИЛИ)
Sonlar ustida ‘yoki’ bit operatsiyasini bajaradi.
5 | 3 ifoda 7 ni beradi
‘shartlik yoki’ bit operatori
Sonlar ustida ‘shartlik yoki’ bit operatsiyasini bajaradi.
5 ^ 3 ifoda 6 ni beradi
‘Emas’ bit operatori Побитовое НЕ
‘Emas’ bit operatsiyasi x soni uchun -(x+1) ga to’g’ri keladi.
~5 ifoda 6 ni beradi.
x qiymat y qiymatdan kichikligini aniqlaydi. Hamma qiyoslash operatorlari True yoki False qaytaradi. Bu so’zlardagi katta xarflarga e’tibor bering.
x qiymat y qiymatdan katta ekanligini aniqlaydi.
5 > 3 ifoda True ni qaytaradi.
Kichik yoki teng
x qiymat y qiymatdan kichik yoki teng ekanligini aniqlaydi.
Katta yoki teng
x qiymat y qiymatdan katta yoki teng ekanligini anqlaydi.
x = 4; y = 3; x >= 3 ifoda True qaytaradi.
Ob’yektlarning tengligini tekshiradi
x = 2; y = 2; x == y ifoda True qaytaradi.
x == y ifoda False qaytaradi.
x == y ifoda True qaytaradi.
Ob’yektlar teng emasligi to’g’riligini tekshiradi.
x = 2; y = 3; x != y ifoda True qaytaradi.
Agar x True bo’lsa, operator False qaytaradi. Agar x False bo’lsa operator True qaytaradi.
x = True; not x ifoda False qaytaradi.
Mantiqiy ‘va’ (Логическое И)
x and y ifoda False qaytaradi agar x False bo’lsa. Aks holda y ning qiymatini qaytaradi.
x = False; y = True;
x and y ifoda False qaytaradi, sababi
x равно False. Bu holda Python y ning qiymatini tekshirib o’tirmaydi sababi ‘and’ operatoridan chapdagi ifoda qismi False ga teng va butun ifoda qiymati boshqa oparatorlar qiymatlariga bog’liqsiz ham False bo’ladi.
x or y agar x True ga teng bo’lsa True qaytaradi aks xolda y ning qiymatini qaytaradi.
x = True; y = False;
x or y ifoda True qaytaradi.
Matematik amallar va o’zlashtirishlarni qisqacha yozish
Ko’pincha bir o’zgaruvchi ustida biror matimatik amal bajarib, natijani o’sha o’zgaruvchining o’ziga o’zlashtirish zaruriyati tug’iladi. Bu holda amallarni qisqacha yozish mumkin.
ni quyidagicha yozishingiz mumkin:
Amallar bajarilish ketma-ketligi
2 + 3 * 4 ifodada qaysi amal birinchi bajariladi: qo’shishmi yoki ko’paytirish?
Matematika fanida ko’paytirish birinchi bajarilishi ko’rsatilgan. Demak, ko’paytirish operatori qo’shish operatoriga qaraganda katta prioritetga(muhimlik darajasiga) ega.
Quyidagi jadvalda Python operatorlari prioriteti ko’rsatilgan. Bunda yuqoridan pastga qarab Python operatorlari prioriteti oshib boradi. Bu shuni anglatadiki, ixtiyoriy ifodada Python oldin eng qiyidagi operatorlarni hisoblaydi va keyin esa yuqoridagilarini.
Amaliyotda esa amallarni qavslar bilan aniq ajratish tavsiya etiladi. Bu dastur kodini oson o’qishga yordam beradi.
Bir xillikni tekshirish
‘yoki’ bit operatori
‘shartlik yoki’ bit operatori
‘va’ bit operatori
Qo’shish va ayirish
Ko’paytirish, bo’lish, qoldiqsiz bo’lish va qoldiqlik bo’lish
Musbat va manfiy
’emas’ bit operatori
Indeks bo’yicha murojat
Kortej (Связка или кортеж)
Bu jadvalda bir xil prioritetga ega bo’lgan operatorlar bir qatorda joylashgan.
Misol uchun ‘+’ va ‘-‘.
Hisoblash tartibini o’zgartirish
Ifodalarni o’qishni osonlashtirish uchun qavslarni ishlatish mumkin. Misol uchun, 2 + (3 * 4) ni tushunish oson operatorlar prioriteni bilish lozim bo’lgan 2 + 3 * 4 ifodadan ko’ra. Qavslarni o’ylab ishlatish kerak. Ortiqcha qavslarni ishlatishdan saqlaning. Misol uchun: (2 + (3 * 4)).
Qavslarni ishlatishni ya’na bir afzalligi hisoblash tartibini o’zgartirish imkonini beradi. Misol uchun, qo’shish amalini ko’paytirish amalidan birinchi bajarish kerak bo’lsa, quyidagicha yozish mumkin:
Assotsiativlilik (Ассоциативность)
Operatorlar hisoblashni asosan chapdan o’ngga amalga oshirishadi. Bu bir xil prioritetga ega bo’lgan operatorlar chapdan o’ngga tartibda amallarni bajarishadi. Misol uchun, 2 + 3 + 4 ifodasi (2 + 3) + 4 shaklida hisoblanadi.
Ba’zi operatorlar misol uchun o’zlashtirish operatori o’ngdan chapga qarab amallarni bajaradi. Misol uchun: a = b = c ifodasi a = (b = c) shaklida qaraladi.
Misol (expression.py fayl ko’rinishida saqlang):
area = length * breadth
print(‘Yuza’, area)
print(‘Perimetr’, 2 * (length + breadth))
Bu qanday ishlaydi:
To’g’ri to’rtburchakning bo’yi va eni length va breadth o’zgaruvchilarida saqlanadi. Biz ulardan ifodalarda to’g’ri to’rturchakning yuzi va perimetrini (tomonlari uzunliklarining yig’indisini) hisoblashda foydalanamiz.
length * breadth ifodaning natijaviy qiymatini area o’zgaruvchida saqlanadi va print funksiyasi yordamida ekranga chiqariladi.
Ikkinchi holda to’g’ridan-to’g’ri 2 * (length + breadth) ifodaning qiymatini print funksiyasiga beramiz.
Yana shunga e’tibor beringki, Python natijani “chiroyli” shaklda ekranga chiqaradi. Biz “Yuza” bilan area o’zgaruvchisi orasiga “probel” (bo’sh joy) qo’ymagan bo’lsak ham, Python biz uchun uni o’zi hisobga olib ketadi va “probel” qo’yadi. Bu Pythonning dasturchilar uchun yengilliklar berishiga misol bo’la oladi.
Python O’zgaruvchi.
Assalomu alaykum Python dasturlash tilida jumladan boshqa dasturlash tillarida ham o’zgaruvchilar katta ahamiyatga ega hisoblanadi! Python dasturlash tilida boshqa dasturlash tillaridan farqli ularoq tip e’lon qilmaydi, ha aytgancha PHP da ham o’zgaruvchilar e’lon qilinmaydi!
O’zgaruvchi – Xotiraning nomlangan qismi bo’lib, o’zida ma’lum bir toifadagi qiymatlarni saqlaydi. O’zgaruvchining nomi va qiymatlari bo’ladi. O’zgaruvchining nomi orqali qiymat saqlanayotgan xotira qismiga murojaat qilinadi. Programma ishlashi jarayonida o’zgaruvchining qiymatini o’zgartirish mumkin. Har qanday o’zgaruvchini ishlatishdan oldin, uni e’lon qilish lozim.
Python dasturlash tilida o’zgaruvchini tipi e’lon qilinmaydi! Dastur kodini yozish jarayonida tipni o’zingiz hohlagan turga o’tkazishingiz mumkin. Buni esa keyingi darslarda ko’rib chiqamiz! Hozir siz bilan dasturlash tilini o’rganish jarayonida qiyinchilikka o’chramasligingiz uchun oddiysidan boshlaymiz!
x = 5 y = "Master Sherkulov" print(x) print(y)
O’zgaruvchilarni biron bir aniq turi bilan e’lon qilish shart emas va ular o’rnatilgandan keyin ham turini o’zgartirishi mumkin.
x = 4 # x integer turiga mansub x = "Master Sherkulov" # x string tipi o'zgartirildi. oldingi qiymat yuqoldi! print(x)
O’zgaruvchilar nom qo’yish!
O’zgaruvchi qisqa nomga ega bo’lishi mumkin (masalan, x va y) yoki ko’proq tavsiflovchi nom (yosh, karnay, master va h.k). Python o’zgaruvchilar uchun qoidalar:
- O’zgaruvchilar [a-Z] harf bilan yoki ” _ “pastga belgi bilan boshlanishi zarur!
- O’zgaruvchilar nomi raqam bilan boshlanmaydi!
- O’zgaruvchi [a-Z] harf bilan yoki “_”pastga belgi bilan boshlanib raqamlar ham aralashtirsa bo’ladi. ( _ali123, son90 va h.k)
- O’zgarvchi nomida katta va kichik harflar ahamiyatga ega bo’lib misol uchun Aka va aka ikki xil o’zgaruvchi nomi hisoblanadi! (Aka, aka, AkA, aKa)
- Python Kirish.
- Python Muhitini o’rnatish.
- Python Izoh qoldirish.
- Python O’zgaruvchi.
- Python Ma’lumot turlari.
- Python Sonlar.
- Python Satrlar.
- Python Boolean (Mantiqiy)
- Python Operator.
- Python Ma’lumot to’plami. List.
- Python Ma’lumot to’plami. Tuple.
- Python Ma’lumot to’plami. Set
- Python If … Else (shart amali)
Do’stlarga Ulashing!
MasterSherkulov
Assalomu alaykum hurmatli dasturchi. Ushbu web sayt sizga foyda keltirayotgan bo’lsa bundan mamnun bo’laman. Dasturlash tili shunday bir imkoniyati keng sohaki. Bu sohani egasi bo’lish va faoliyat yuritish sizga katta foyda olib keladi. Quyidagi keltirilgan Ijtimoiy tarmoqlarda Uzbek tiliga asoslangan rasmiy kanallarim keltirilgan.