Python Dasturlash Tili O`quv Qo`llanma PDF
Document Details
![RealizableRadiance9112](https://quizgecko.com/images/avatars/avatar-20.webp)
Uploaded by RealizableRadiance9112
Buxoro Davlat Universiteti
2023
M.A. Bobojonova
Tags
Summary
This is an introductory textbook on Python programming, suitable for undergraduate students at Buxoro State University. It covers various topics in Python, from basic syntax to more advanced concepts.
Full Transcript
O'ZBEKISTON RESPUBLIKASI OLIY TA'LIM, FAN VA INNOVATSIYALAR VAZIRLIGI BUXORO DAVLAT UNIVERSITETI M.A.BOBOJONOVA PYTHON DASTURLASH TILI O`QUV QO`LLANMA 5130200 – Amaliy matematika 60610200-Axborot tizimlari va texnologiyalari (tarmoqlar...
O'ZBEKISTON RESPUBLIKASI OLIY TA'LIM, FAN VA INNOVATSIYALAR VAZIRLIGI BUXORO DAVLAT UNIVERSITETI M.A.BOBOJONOVA PYTHON DASTURLASH TILI O`QUV QO`LLANMA 5130200 – Amaliy matematika 60610200-Axborot tizimlari va texnologiyalari (tarmoqlar va sohalar bo`yicha) “Durdona” nashriyoti Buxoro – 2023 UO'K 004.43(075.8) 32.973-018.1ya73 B 79 Bobojonova, M.A. Python dasturlash tili [Matn] : o`quv qo`llanma / M.A. Bobojonova.-Buxoro: Sadriddin Salim Buxoriy, 2023.-108 b. KBK 32.973-018.1ya73 Python dasturlash tili joriy yilda eng zamonaviy, eng sodda, dasturchilar tomonidan eng ko`p qo`llanilayotgan til sifatida e`tirof etildi. Amaliy jihatdan olib qaraydigan bo`lsak, Pythonda masalalar to`plamiga oid o`zbek tilidagi kitoblarimiz sanoqli. Ularda axborot juda kam bo`lib, sayoz yozilgan. “Python dasturlash tili” o`quv qo`llanmasi Oliy o`quv yurtlaridagi o`qitish effektivligini oshirishga, informatika darslarida Python tilini kengroq qo`llashga xizmat qiladi. Mazkur o`quv qo`llanma Oliy ta`lim muassalarining “5130200 – Amaliy matematika”, 60610200-Axborot tizimlari va texnologiyalari (tarmoqlar va sohalar bo`yicha) ta`lim yo`nalishining “Python dasturlash tili” fanidan amaliyot darslarida foydalanish uchun tavsiya etiladi. Taqrizchilar: D.D.Axmedov - Raqamli texnologiyalar va sun`iy intellektni rivojlantirish ilmiy-tadqiqot instituti katta ilmiy xodimi, texnika fanlari bo`yicha falsafa doktori I.I.Bakayev - Buxoro davlat universiteti "Axborot tizimlari va raqamli texnologiyalar" kafedrasi dotsenti, PhD. Oʻquv qoʻllanma Buxoro davlat universitetining 2023-yil 27-iyundagi 354-sonli buyrugʻiga asosan nashr etishga ruxsat berilgan. Roʻyxatga olish raqami 354-35. ISBN 978-9910-9776-3-3 2 MUNDARIJA Kirish..................................................................................................... 4 1-mavzu. Python dasturlash tili va uning dasturlash muhiti................. 7 2-mavzu. Python dasturlash tilida o’zgaruvchilar.............................. 12 3-mavzu. Pythonda ma`lumot turlari.................................................. 15 4-mavzu. Pythonda operatorlar va ular bilan ishlash.......................... 18 5-mavzu. Pythonda tarmoqlanuvchi operatorlar................................. 21 6-mavzu. Pythonda takrorlanish operatorlari...................................... 25 7-mavzu. Pythonda satrlar................................................................... 29 8-mavzu. Pythonda satrlar (string funksiyalari)................................. 32 9-mavzu. Pythonda ro`yxatlar va to`plamlar (list ma`lumot turi)...... 35 10-mavzu. Pythonda ro`yxatlar va to`plamlar (set ma`lumot turi)..... 37 11-mavzu. Pythonda massivlar (bir o`lchovli massivlar)................... 39 12-mavzu. Pythonda massivlar (ikki o`lchovli massivlar)................. 42 13-mavzu. Pythonda funksiyalar......................................................... 45 14-mavzu. Pythonda funksiyalar. Rekursiv funksiyalar..................... 49 15-mavzu. Pythonda fayllar bilan ishlash........................................... 54 16-mavzu. Pythonda fayllar bilan ishlash........................................... 59 17-mavzu. Python standart kutubxonasi............................................. 65 18-mavzu. Python standart kutubxonasi............................................. 68 19-mavzu. Pythonda modullar (math, data time modullari)............... 70 20-mavzu. Pythonda modullar (random moduli)................................ 74 21-mavzu. Pythonda sinflar va obyektlar........................................... 79 22-mavzu. Pythonda sinflar va obyektlar........................................... 84 23-mavzu. Voris tushunchasi.............................................................. 87 24-mavzu. Voris tushunchasi (ko`p merosxo`rlik)............................. 90 25-26-mavzular. Grafik modular bilan ishlash................................... 92 27-mavzu. Turtle moduli..................................................................... 94 28-mavzu. Turtle moduli..................................................................... 97 29-mavzu. Tkinter moduli (python tkinter basic)............................. 100 30-mavzu. Tkinter moduli (python tkinter widgets)......................... 102 Xulosa................................................................................................ 104 Foydalanilgan adabiyotlar va internet resurslari roʻyxati................. 105 3 KIRISH Zamonaviy dunyoda, hayotni axborot texnologiyalarisiz tasavvur qilishning iloji yo'q. Ular bizning hayotimizga qat'iy kirishdi, axborot texnologiyalari insoniyat hayotining barcha sohalarida qo'llaniladi, ayniqsa ikki tomonlama muhim rol o'ynaydi. Axborot texnologiyalari insoniyatning barcha to'plangan tajribasini amaliy foydalanish uchun mos formatlangan shaklda aks ettiradi. Shuningdek, u ijtimoiy jarayonlarni amalga oshirish uchun ilmiy bilim va materialistik tajribani jamlaydi, shu bilan birga mehnat, vaqt, energiya va moddiy xarajatlarni tejaydi. "Bugun O'zbekiston barcha sohalarda o'zini namoyon qilmoqda. Axborot texnologiyalariga o'z vaqtida e'tibor qaratishimiz yaxshi natijalar bermoqda. Bitta dasturiy mahsulot davlatga korruptsiya, byurokratiyani yo'q qilish va odamlar uchun qulayliklar yaratishda katta yordamdir. Yodingizda bo'lsin, sizning ishingiz juda muhim", — dedi Shavkat Mirziyoyev. O‘zbekiston Respublikasi Prezidentining 2021 yil 17 fevraldagi PQ-4996-sonli “Sun`iy intellekt texnologiyalarini jadal joriy etish uchun shart-sharoitlar yaratish chora-tadbirlari to‘g‘risida”gi qarori, 2021 yil 26 avgustdagi PQ-5234-sonli “Sun`iy intellekt texnologiyalarini qo‘llash bo‘yicha maxsus rejimni joriy qilish chora- tadbirlari to‘g‘risida”gi qarori, 2020 yil 5 oktabrdagi PF-6079-sonli “«Raqamli O`zbekiston — 2030” strategiyasini tasdiqlash va uni samarali amalga oshirish chora-tadbirlari to‘g‘risida” farmoni yurtimizda Axborotlashtirish sohasiga bo`lgan katta e`tiborni ko`rsatadi. O`quv qo`llanmaning asosini Python dasturlash tili bo`lgani uchun ushbu tilning tarixi hamda hozirgi reytingi haqida qisqacha to`xtalib o`tamiz. Bilamizki, dasturlash tilining mashhurligini ishlab chiquvchilar orasida eng ommabop resurs - Stack Overflowdagi teglar sonining dinamikasi bilan kuzatish mumkin. Shunday qilib, grafikaga ko'ra, Pythonning o'sishi 2010 yilda boshlangan va 2015 yilda tezlashdi. Pythonni eski til deb atash mumkin - u 1991 yilda, ya'ni deyarli 31 yil oldin paydo bo'lgan. Bu vaqt ichida u asta-sekin atrofiga katta jamoani to'pladi. Java bilan bir vaqtda Python tili paydo bo'ladi. Til 4 ishlab chiquvchisi, matematik Guido van Rossum uzoq vaqt davomida dasturlashni o'rgatish uchun ABC tilini ishlab chiqdi. 1.1-rasm. TIOBE 2023 –yil fevral oyidagi natijalari 1.2-rasm. Dasturlash tillari reytingi Python birinchi dasturlash tili sifatida ishonchli tavsiya etilishi mumkin. Gap shundaki, Python uzoq vaqtdan beri mavjud va u haqida juda ko'p yaxshi darsliklar yozilgan. U oddiy, "inson" tiliga o'xshash tushunarli sintaksisga ega va u xatolarni ham tushuntiradi. Masalan, undagi ma'lumotlar turini ko'rsatish shart emas, faqat o'zgaruvchini e'lon qilish kifoya. Python kontekstdan uning butun son, haqiqiy son, mantiqiy yoki boshqa biror tipda ekanligini avtomatik aniqlaydi. Bu yangi boshlanuvchilar uchun katta afzallik. Agar siz C++ da dasturlashtirgan bo‘lsangiz, biror joyda haqiqiy (float) sonini butun (int) songa o‘zgartirganingiz uchun dastur 5 kompilyatsiya qilinmasligi qanchalik achinarli ekanini bilasiz. Python kodini o'qish juda oson. Ushbu o`quv qo`llanma Oliy o`quv yurtlaridagi o`qitish effektivligini oshirishga, Python tilini kengroq qo`llashga xizmat qiladi degan umiddamiz. “Python dasturlash tili” o`quv qo`llanmasi kirish, 30 ta mavzu, mundarija hamda foydanilgan adabiyotlar va internet resurlari ro`yxatidan iborat. O`quv qo`llanmada dasturlar sharti, kerakli formula va chizmalar, yechimi va natijalari ko`rinishida berilgan. O`quv qo`llanmaning umumiy hajmi 106 betdan iborat bo`lib, 80 dan ortiq masala yechimlari berilgan. 6 1-MAVZU. PYTHON DASTURLASH TILI VA UNING DASTURLASH MUHITI Python faol qo'llaniladigan sohalarni qisqacha sanab o'tamiz: 1.3-rasm. Python tili sohalari 1. Tizimli dasturlash. 2. Grafik interfeysli dasturlarni ishlab Chiqarish. 3. Dinamik veb-saytlarni ishlab Chiqarish. 4. Komponentlarning integratsiyasi. 5. Ma'lumotlar bazalari bilan ishlash dasturlarini ishlab Chiqarish. 6. Tez prototiplash. 7. Ilmiy hisoblash uchun dasturlarni ishlab Chiqarish. 8. O'yinni ishlab Chiqarish. Python dasturlarini ishga tushirish uchun bizga nima kerak? Bu savolga javob berishdan oldin dasturlarning kompyuterda qanday ishlashini ko'rib chiqamiz. Dasturlar operatsion tizim (Windows, Linux va boshqalar) tomonidan amalga oshiriladi. Operatsion tizimning vazifalariga dastur uchun resurslarni (RAM va boshqalarni) taqsimlash, kiritish-chiqarish qurilmalariga kirishni ta`qiqlash, ruxsat berish va boshqalar kiradi. Python dasturlarini ishga tushirish uchun sizga Python tarjimoni (virtual mashina) kerak. Ushbu dastur operatsion tizimning barcha 7 xususiyatlarini Python dasturchisidan yashiradi, shuning uchun Windows tizimida yozilgan Python dasturini GNU/Linuxda ishga tushirishingiz va bir xil natija olishingiz mumkin. Python dasturini kompyuterga o‘rnatish bir necha bosqichlardan iborat: https://www.python.org/downloads/windows/ rasmiy veb saytiga kirib, kompyuteringizning texnik parametrlarini hisobga olgan holda eng so‘nggi versiyasini yuklab oling. Kompyuterning texnik parametrlariga, razryadi, (64 bit yoki 32 bit) qaysi operatsion sistema o‘rnatilganligi va boshqa parametrlar kiradi. Keltirilgan dasturlarni yechishda Python 3-versiyasi yoki undan keyingi versiyalar kerak bo`ladi. IDLE ni ishga tushirish tartibi: 1.4-1.5-rasmlar. IDLE Python dasturini ishga tushirish IDLE ni ishga tushirgandan so`ng quyidagi oyna paydo bo`ladi: 8 1.6-rasm. IDLE Python dasturining ishchi oynasi IDLE da yangi fayl yaratish: 1.7-rasm. IDLE Pythonda yangi fayl yaratish 9 Untitled nomi ostida Yangi fayl yaratiladi: 1.8-rasm. Yangi fayl yaratish Faylni saqlash uchun file-save yoki ctrl+s tugmalarini bosamiz. Kerakli papkani tanlab, faylimizga nom berib saqlaymiz..py kengaytmali fayl paydo bo`ladi. masalan, dastur.py 1.9-rasm. Yangi faylni saqlash O'rganishning eng boshida Pythonni oddiy interaktiv kalkulyator deb hisoblash mumkin. Interaktiv IDLE rejimida quyidagi matematik 10 ifodalarning qiymatlarini toping. Ifodani tugatgandan so'ng, kiritishni yakunlash va natijani ekranda ko'rsatish uchun Enter tugmasini bosing. >>> 3.0 + 6 9.0 >>> 4 + 9 13 >>> 1 - 5 -4 >>> _ + 6 2 >>> Oldingi misoldagi pastki chiziq oxirgi olingan natijani bildiradi. Agar biror-bir sababga ko'ra buyruq yozishda xatoga yo'l qo'ysangiz, Python bu haqida xabar beradi: >>> a Traceback (most recent call last): File "", line 1, in a NameError: name 'a' is not defined >>> Mustaqil bajarish uchun topshiriqlar: 1. “Python – interpretor dasturlash tili” deganda nimani tushunasiz? 2. Pythonda xotira qanday boshqariladi? 3. Python modullari nima? 4. Shaxsiy komputeringizga python dasturlash tilini yuklab oling. 5. Ushbu mavzuda berilgan ketma-ketlikda dasturni o`rnating. 6. Python dasturlash tilida yangi fayl ochib, 1-dastur.py deb nomlang. 11 2-MAVZU. PYTHON DASTURLASH TILIDA O’ZGARUVCHILAR Dasturlash tili alifbosi quyidagicha: Yordamchi so`zlar: print, len, type, def… Literal o`zgaruvchilar: number, strings… Operatorlar: + - * = , ; … Grammatika (sinkaksis) Foylanuvchi yaratgan so`zlar: variables, functions, classes… O'zgaruvchi-bu dasturning oraliq yoki yakuniy natijasi saqlanishi mumkin bo'lgan eng oddiy nomlangan ma'lumotlar tuzilishi. Python - da o'zgaruvchini yaratish juda oson - "=" tayinlash operatori yordamida ma'lum bir identifikatorga qiymat berishingiz kerak. a = 18 b = 3.1415926 c = "Salomlar" d = [1, 2, 3, 4, 5] Ushbu misollarda to'rtta o'zgaruvchidan foydalanildi: a o'zgaruvchisi int (butun sonı) turidagi qiymatni saqlaydi, float b tipidagi o'zgaruvchi (haqiqiy son), c tipidagi o'zgaruvchi satr (qator), ro'yxat, c tipidagi o'zgaruvchi (ro'yxat, bu holda uchta butun son). Python dasturi yordamchi so`zlar to'plamidan iborat. Har bir yordamchi so`z yangi qatorga joylashtiriladi. Misol uchun: print(2 + 3) print("Salom") Natija: 5 Salom Pythonda qator boshidan qo`yilgan bo`sh joylar(oтступ, Tab orqali qo`yilgan) katta rol o'ynaydi. Noto'g'ri qo`yilgan bo`sh joylar xatolik beradi. Masalan, kod yuqoridagi bilan deyarli bir xil bo'lsa ham quyidagi holatda biz xatoga yo'l qo'yamiz: print(2 + 3) print("Salom") 12 Xatolik beradi. Python katta-kichik harflarga sezgir tildir, shuning uchun print, Print yoki PRINT ifodalari turli ifodalarni ifodalaydi. Agar konsolga chiqarish uchun print o'rniga, biz Printdan foydalansak: Print("Salom") Natija: NameError: name 'Print' is not defined Bunda biz hech qanday natijaga erishmaymiz. Izohlar - kod qismi nima qilishini belgilash uchun ishlatiladi. Dastur bajarilganda, izohlarni e'tiborsiz qoldiradi, shuning uchun ular dasturning ishlashiga ta'sir qilmaydi. Pythondagi izohlar blok va inline izohlarda keladi. Satr izohlaridan oldin funt belgisi - # qo'yiladi. Ular alohida qatorda bo'lishi mumkin: # Konsolga kirish # Salom dunyo! xabari print("Salom dunyo!") Natija: Salom dunyo! # belgisidan keyingi har qanday belgilar to'plami izohni bildiradi. Ya'ni, yuqoridagi misolda kodning birinchi ikki qatori izohlardir. Blok izohlarida izoh matnidan oldin va keyin uchta bitta tirnoq qo'yiladi: '''izoh matni'''. Misol uchun: ''' Konsolga kirish Xabarni chop etish ''' print("Salom dunyo!") Python asosiy funksiyalari Python bir qator funksiyalarni taqdim etadi. Ulardan ba'zilari, ayniqsa, til o'rganishning dastlabki bosqichlarida juda tez-tez ishlatiladi, shuning uchun ularni ko'rib chiqaylik. Konsolga ma'lumot chiqarishning asosiy funksiyasi print() funksiyasi hisoblanadi. Biz chiqarmoqchi bo'lgan satr ushbu funksiyaga argument sifatida uzatiladi: print("Salom dunyo!") 13 Agar biz konsolga bir nechta qiymatlarni chop etishimiz kerak bo'lsa, ularni vergul bilan ajratilgan bosib chiqarish funksiyasiga o'tkazishimiz mumkin: print("Familiyasi, ismi:", "Mustafoyeva", "Iymona") Agar print funksiyasi chiqarish uchun javobgar bo'lsa, u holda input() funksiyasi axborotni kiritish uchun javobgardir. Bu funksiya kiritish soʻrovini ixtiyoriy parametr sifatida oladi va biz oʻzgaruvchida saqlashimiz mumkin boʻlgan kirish qatorini qaytaradi: ism = input("Ismingizni kiriting: ") print("Salom", ism) Natija: Ismingizni kiriting: Muslimbek Salom Muslimbek Mustaqil bajarish uchun topshiriqlar: 1. IDLE muhiti boshlang`ich oynasida quyidagi ifodalarning qiymatlarini hisoblang: a) 41115+31147-23321=? b) 8 + 6 : (−2) − 2 (−11) =? 6,8 0, 04 1, 65 c) =? 3,3 5,1 0,16 2. File->New File yoki Ctrl+N tugmalari yordamida yangi fayl yaratib, “SALOM” degan satrni chop eting. 3. Uch marta chiqarish operatoridan foydalangan holda, ism, familiya va sharifingizni ekranga chop eting. 4. Foydalanuvchidan ma'lumotlarni qanday olish mumkin? 5. Qaysi funksiya konsolga ma`lumotni chop etadi? 6. Python dasturlash tilidagi qaysi kutubxonalarni bilasiz? 7. Python dasturlash tilidagi operatorlar haqida ma`lumot bering. 14 3-MAVZU. PYTHONDA MA`LUMOT TURLARI Ushbu mavzudan boshlab, masalalarning python dasturlash tilida tuzilgan kodlarini berib boramiz. Bu esa siz, aziz kitobxon, dasturlash tilini o`rganishingizda asosiy ko`makdosh bo`ladi degan umiddamiz! Ma'lumot turlari python dasturlash tilidagi muhim tushunchadir. Har bir qiymat python dasturlash tilida o'z python ma'lumotlar turiga ega. Ma'lumot elementlarini tasniflash yoki ma'lumot qiymatini qandaydir ma'lumotlar toifasiga kiritish ma'lumotlar turlari deb nomlanadi. Python o'zgaruvchining ma'lumotlar turini bilish uchun type() funksiyasini taqdim etadi. Raqamli ma`lumot turlariga int, float, complex tiplari kiradi. O'zgarmas ma'lumotlar O'zgaruvchan turlari: ma'lumotlar turlari: Raqam Ro'yxat Satr Lug'at Kortej To`plam 3.1-masala. To`g`ri to`rtburchakning perimetrini hisoblash dasturini tuzing. Yechim: 𝑃 = 2 ∙ (𝑎 + 𝑏); bu yerda a-to`g`ri to`rtburchakning eni va b- bo`yi. Dastur kodi Dastur natijasi a=23 Perimetr = 80 b=17 p=2*(a+b) print("Perimetr =", p) 3.2-masala Radiusi berilgan doiraning yuzasi va uzunligini hisoblash dasturini tuzing. 15 Yechim: 𝑆 = 𝜋 ∙ 𝑟 2 , 𝑙 = 2𝜋𝑟; bu yerda, r-doira radiusi. Dastur kodi Dastur natijasi r=7 Yuzasi 153.86 pi=3.14 Aylana uzunligi print("Yuzasi ", r*r*pi) 43.96 print("Aylana uzunligi", 2*r*pi) 3.3-masala 1 dan N gacha musbat butun songacha bo`lgan sonlarning yig`indisini hisoblash dasturini tuzing. 1-usul: arifmetik progressiyani qo`llash. 𝑎 +𝑎 Yechim: 𝑆 = 1 𝑛 ∙ 𝑛; bu yerda 𝑎1 = 1 va 𝑎𝑛 = 𝑛 ga teng. 2 Dastur kodi Dastur natijasi n = int(input("N ni kiriting: N ni kiriting: ")) 10 yigindi = (n * (n + 1)) / 2 10 gacha print(n ,"gacha yig`indi: ", yig`indi: 55.0 yigindi) 2-usul: range funksiyasini qo`llash. range() funksiyasi berilgan diapazonda bir qator sonlarni yaratishga imkon beradi. range() funksiyasini 3 xil chaqirish mumkin: 1. range(stop) - bitta argumentni oladi; 2. range(start, stop) - ikkita argumentni oladi; 3. range(start, stop, qadam) - uchta argumentni oladi. Dastur kodi Dastur natijasi n = int(input("Butun son Butun son kiriting: ")) kiriting: 45 yigindi = sum(range(n+1)) 45 gacha print(n,"gacha yig`indi: 1035 yig`indi:",yigindi) 16 Mustaqil bajarish uchun topshiriqlar: 1. Uchburchakning uchlarining koordinatalari berilgan. Ular (x1,y1), (x2,y2), (x3,y3) hisoblanadi. Ikki nuqta orasidagi masofani topish formulasi va Geron formulasidan foydalanib uning perimetrini hamda yuzasini hisoblang. 2. a va b o‘zgaruvchilardagi qiymatlarni almashtiradigan dastur tuzing. 3. a, b va c o‘zgaruvchilarining qiymatlari quyidagicha almashtiring: a -> b, b -> c, c -> a va chop eting. 4. a, b va c o‘zgaruvchilarining qiymatlari quyidagicha almashtiring: c ->b, b -> a, a ->c va chop eting. 5. x ning berilgan qiymatida y=3x6-6x3-7 ning qiymatini hisoblang. 6. x ning berilgan qiymatida y=4(x-3)6-7(x-3)3+2 ning qiymatini hisoblang. 7. Masofa l sm berilgan. sm larni metr larga aylantiring va butun qismini toping. 8. Tekislikda koordinatalari bilan berilgan ikki nuqta orasidagi masofani hisoblang. 9. Doiraning yuzi s berilgan. Uning diametri d ni va aylana uzunligi l ni hisoblang. 10. To‘g‘ri to‘rtburchak shaklidagi parallelipipedning qirralari a, b, c berilgan. Uning hajmi v va sirtining yuzi s ni hisoblang. 11. Dastur natijasini toping: name = "John" print('Hi, %s' % name) 17 4-MAVZU. PYTHONDA OPERATORLAR VA ULAR BILAN ISHLASH Operator- ikkita operand o'rtasida ma'lum bir operatsiyani bajaradigan belgi. Muayyan dasturlash tilida operatorlar mantiqni dasturda qurish uchun asos bo'lib xizmat qiladi. Python asosiy operatorlari: Arifmetik operatorlar Taqqoslash operatorlari Tayinlash Operatorlari Mantiqiy Operatorlar A'zolik Operatorlari Ikki operand orasidagi arifmetik amallar arifmetik operatorlar yordamida amalga oshiriladi. Unga + (qo'shish), - (ayirish), * (ko'paytirish), / (bo'lish), % (qoldiqli bo`lish) va // (butun bo'lish) operatorlari hamda daraja (**) operatori kiradi. Taqqoslash operatorlari ikkita operandning qiymatlarini taqqoslaydi va mos ravishda True yoki False mantiqiy qiymatni qaytaradi. Tayinlash operatorlari o'ng ifodaning qiymati belgilash operatorlari yordamida chap operandga beriladi. (=, +=, -=, *=, //=, %=, **=) Qaror qabul qilish uchun natijalarni baholashda mantiqiy operatorlardan foydalanadi (and, or, not). Python ma'lumotlar tuzilmasi ichidagi qiymatning a'zoligini Python a'zolik operatorlari yordamida tekshirish mumkin. Agar qiymat ma'lumotlar tarkibida bo'lsa, natija True bo'ladi, aks holda, u Falseni qaytaradi. (in, not in) 4.1-masala Ikkita butun son berilgan. Arifmetik operatorlar yordamida ularning yig`indisi, ayirmasi, ko`paytmasi, qoldig`ini va darajasini hisoblash dasturini tuzing. Dastur kodi Dastur natijasi a = 9 a + b= 13 b = 4 a - b= 5 add = a + b # yig`indi a * b= 36 18 sub = a – b # ayirma a % b= 1 mul = a * b # ko`paytma a ^ b= 6561 mod = a % b # qoldiqli bo`lish p = a ** b # daraja # chop etish print("a + b=", add) print("a - b=", sub) print("a * b=", mul) print("a % b=", mod) print("a ^ b=", p) 4.2-masala a1, b1, c1, a2, b2, c2 koeffisientlar bilan berilgan, quyidagi ko’rinishga ega bo’lgan 𝑎 𝑥 + 𝑏1 𝑦 = 𝑐1 { 1 𝑎2 𝑥 + 𝑏2 𝑦 = 𝑐2 chiziqli tenglamalar sistemasining yechimi hisoblang. Masalan: 1 1 5 2 -1 4 Natija: 3 2 Dastur kodi Dastur natijasi a1 = int(input("a1=")) a1=1 b1 = int(input("b1=")) b1=1 c1 = int(input("c1=")) c1=5 a2 = int(input("a2=")) a2=2 b2 = int(input("b2=")) b2=-1 c2 = int(input("c2=")) c2=4 3.0 2.0 x = (b2 * c1 - b1 * c2) / (a1 * b2 - a2 * b1) y = (a2 * c1 - a1 * c2) / (a2 * b1 - a1 * b2) print(x,y) 4.3-masala Mantiqiy a va b o`zgaruvchilari berilgan. Mantiqiy operatorlardan foydalangan holda a va b, a yoki b, a emas ifodalarning natijalarini toping. 19 Dastur kodi Dastur natijasi a = True False b = False True print(a and b) False print(a or b) print(not a) Mustaqil bajarish uchun topshiriqlar: 1. Ikki xonali son berilgan. Dastlab uning chap qismidagi raqami so‘ngra o‘ng qismidagi raqami alohida-alohida qilib chop eting. Bu ishni bajarishda butunga bo’lish va qoldiqni hisoblash amallaridan foydalaning. 2. Sutkaning n-sekundi bo‘lsa, sutka boshidan buyon necha soat o‘tganligini aniqlang. 3. 1 yanvar seshanba bo‘lib, hafta kunlari quyidagicha raqamlangan bo’lsa, 1-dushanba, 2-seshanba, 3-chorshanba, 4-payshanba, 5-juma, 6-shanba, 7-yakshanba bo‘lsa, berilgan k (1-365) butun sonini yilning kuni deb hisoblab u haftaning qaysi kuniga to‘g‘ri kelishi aniqlang. 4. Biror yil berilgan. Shu yilning qaysi asrga tegishli ekanligi aniqlang, asr boshi quyidagicha hisoblanadi, misol: 20 asr 1900 yildan boshlanadi. 5. Birinchi avtomobilning tezligi v1, ikkinchisiniki v2, ular orasidagi masofa s km. Avtomobillar bir-biriga tomon harakatlanayotgan bo’lsa, t vaqtdan keying ular orasidagi masofa hisoblang. 6. x, y sonlari berilgan. Ularni koordinatalar deb hisoblab 1- yoki 3- chorakda yotishi tekshirilsin. 7. Uchta butun son berilgan. Shu sonlarning uchburchakning tomonlarini tashkil etishi tekshirilsin. 20 5-MAVZU. PYTHONDA TARMOQLANUVCHI OPERATORLAR Pythonda shartli operatorlar quyidagi operatorlar amalga oshiriladi: 1. If operatori ma'lum bir shartni tekshirish uchun ishlatiladi va agar shart to'g'ri bo'lsa, u if-blok deb nomlanuvchi kod blokini bajaradi. if ifoda: #operatorlar 2. If-else operatori shartning False holatida bajariladigan if operatori bilan birlashtirilgan else blokini taqdim etadi. Agar shart to'g'ri bo'lsa, unda if-blok bajariladi. Aks holda, else-blok bajariladi. if ifoda: #operatorlar else: #else-block 3. Elif operatori bizga bir nechta shartlarni tekshirishga va ular orasidagi haqiqiy shartga qarab aniq operatorlar blokini bajarishga imkon beradi. Biroq, elif dan foydalanish ixtiyoriydir. Elif operatori C-dagi if-else-if ketma-ketlik kabi ishlaydi. if ifoda 1: #operatorlar elif ifoda 2: #operatorlar elif ifoda 3: #operatorlar else: #operatorlar 5.1-masala Yil berilgan. Berilgan yilda necha kun borligini aniqlash dastur tuzing. Kabisa yili 366 kundan, boshqa yillar esa 365 kundan iborat. Dastur kodi Dastur natijasi yil=int(input("yil=")) yil=2020 if(yil%4==0): Kabisa yilida print("Kabisa yilida 366 366 kun bor kun bor") 21 else: print("365 kun") 5.2-masala To‘g‘ri sanani ifodalovchi kabisa bo‘lmagan yilning (d) kuni va (m) oyi butun sonlar ko‘rinishida berilgan. Berilgan sanadan oldingi sana toping va chop eting. Masalan: 1 3 Natija: 28 2 Dastur kodi Dastur natijasi d=int(input("day=")) day=1 m=int(input("month=")) month=12 if (d>1): 30 11 print(d-1," ",m) elif(d==1): x=m-1 if(x==1 or x==3 or x==5 or x==7 or x==8 or x==10 or x==12): print("31 ", m-1) if(x==4 or x==6 or x==9 or x==11): print("30 ", m-1) if(x==2): print("28 ", m-1) 5.3-masala Uchburchakning teng tomonli, teng yonli yoki turli tomonli ekanligini tekshirish uchun Python dasturini yozing. 22 5.1-rasm. Uchburchak turlari Dastur kodi Dastur natijasi print("Uchburchak tomonlarini Uchburchak kiriting.") tomonlarini x = int(input("x: ")) kiriting. y = int(input("y: ")) x: 5 z = int(input("z: ")) y: 6 z: 5 if x == y == z: Teng yonli print("Teng tomonli uchburchak uchburchak") elif x==y or y==z or z==x: print("Teng yonli uchburchak") else: print("Turli tomonli uchburchak") 5.4-masala Uchta butun son berilgan. Ulardan bittasi qolgan ikkitasidan ishoralari bilan farq qilsa, shu farq qiluvchi sonning tartib nomeri aniqlang. Masalan: 4 -2 Natija: 1 2 Dastur kodi Dastur natijasi a = float(input("1-son: ")) 1-son: -8 23 b = float(input("2-son: ")) 2-son: 5 c = float(input("3-son: ")) 3-son: -2 2 if((a > 0 and b > 0 and c > 0) or (a < 0 and b < 0 and c < 0)): print(0) elif(a * b > 0): print(3) elif(a * c > 0): print(2) else: print(1) Mustaqil bajarish uchun topshiriqlar: 1. Butun son berilgan. Agar u musbat bo‘lsa unga 1 ni qo‘shing, aks holda o‘zgarishsiz qoldirilsin. Olingan son chiqaring. 2. Butun son berilgan. Agar u manfiy bo‘lsa 2 ni ayiring, 0 ga teng bo‘lsa 10 bilan almashtiring. Olingan son chiqaring. 3. Uchta butun son berilgan. Ular orasidagi musbatlari soni toping. 4. Ikkita son berilgan. Ulardan kattasi chiqaring. 5. Ikkita son berilgan. Ulardan kichigining tartib raqami chiqaring. 6. Ikkita butun tipga tegishli a va b o‘zgaruvchilar berilgan. Agar ularning qiymatlari teng bo‘lmasa har bir o‘zgaruvchiga qiymatlar yig‘indisi berilsin, aks holda har bir o‘zgaruvchining qiymati 0 bo`lsin. O‘zgaruvchilarning natijaviy qiymatlari chiqaring. 7. Haqiqiy tipga tegishli x o‘zgaruvchi berilgan. Uning qiymatiga mos keluvchi f funksiyaning qiymatini toping. −𝑥, 𝑥 ≤ 0 2 𝑓 = {𝑥 , 0 < 𝑥 < 2 4, 𝑥 ≥ 2 24 6-MAVZU. PYTHONDA TAKRORLANISH OPERATORLARI Biz takrorlash operatorlari yordamida bitta operator yoki operatorlar to'plamini qayta-qayta ishga tushirishimiz mumkin. Python dasturlash tilida quyidagi turdagi takrorlash operatorlari mavjud: 1. Pythonda for operatori ko'pincha ro'yxatlar, kortejlar yoki satrlar kabi takrorlanadigan obyektlar ustida takrorlash uchun ishlatiladi. Pythondagi for operatori ketma-ket elementlar bo'ylab o'tib, har safar kod blokini boshqaradi. For operatori sintaksisi: for qiymat in ketma-ketlik: #for bloki 2. While operatori kod blokining takrorlash iteratsiyasida berilgan shart, ya'ni shartli_ifoda True bo`lganda, bajariladi. Agar biz iteratsiyani muddatidan oldin necha marta bajarishimizni bilmasak, noaniq takrorlash yozishimiz mumkin. while shartli_ifoda: #while bloki 6.1-masala a va b (a0) butun son berilgan. Haqiqiy tipli ak ketma-ketlik quyidagicha 𝑎 +1 aniqlanadi: 𝑎0 = 1, 𝑎𝑘 = 𝑘−1 , 𝑘 = 1,2 … Ketma-ketlikning 𝑘 𝑎1 , 𝑎2 , … 𝑎𝑛 hadlarini toping. 25 Dastur kodi Dastur natijasi n=int(input()) 2 a0=1 2.0 for i in range(1,n+1): 1.5 a1=(a0+1)/i print(a1) a0=a1 6.3-masala n(n>0) butun son berilgan. Agar u 3 sonining darajasidan iborat bo‘lsa True, aks holda False chiqaring. Dastur kodi Dastur natijasi n=int(input("n=")) n=243 i=1 True while i0: 1 b=b+1 n=n-k print(b) print(n) 26 Mustaqil bajarish uchun topshiriqlar: 1. k va n (n>0) butun sonlar berilgan. n marta k soni chiqaring. 2. a va b butun sonlar berilgan(a>b). a va b sonlari orasidagi sonlarni o‘sish tartibida chiqaring(a va b sonlari ham kiradi) hamda shu sonlar miqdori (soni) n chiqaring. 3. a va b butun sonlar berilgan(a0) butun soni berilgan. 1,1-1,2+1,3-… Ifodaning qiymati toping. Shart operatori qo‘llanilmasin. 7. n(n>0) butun soni berilgan. Quyidagi formuladan foydalanib berilgan sonning kvadrati hisoblang: n2=1+3+5+…+(2n-1). Har bir qadamdagi yig‘indi chiqaring(natijada 1 dan n gacha bo‘lgan butun sonlarning kvadrati chiqadi). 8. a haqiqiy va n butun sonlari berilgan(n>0). a n = a ⋅ a ⋅... ⋅ a. (a, n marta ko‘paytirilgan) a ning n- darajasi hisoblang. 9. a va n sonlari berilgan. Bitta sikldan foydalanib a sonining 1 dan n gacha bo‘lgan darajalari chiqaring. 10. 1 kg konfetning narxi haqiqiy sonda berilgan. 1,2,…, 10 kg konfetning bahosi chiqaring. 11. Kod natijasini toping: 27 for j in 'Salom! Men\ talabaman’: if j == '\'': print("Topildi") break else: print ("Tugadi") 28 7-MAVZU. PYTHONDA SATRLAR Pythonda string - bu bitta tirnoq, ikkita tirnoq yoki uch tirnoq ichidagi belgilar to'plami. Kompyuter belgilarni tushunmaydi, ichki sifatida u manipulyatsiya qilingan belgini 0 va 1 kombinatsiyasi sifatida saqlaydi. Har bir belgi ASCII yoki Unicode belgisida kodlangan. 7.1-rasm. ASCII jadvali ASCII (inglizcha: American Standard Code for Information Interchange) — bosma belgilar va boshqa maxsus kodlar uchun Amerika Qoʻshma Shtatlari standart kodlash jadvali. ASCII oʻnlik sonlar, lotin va milliy alifbolar, tinish belgilari va boshqaruvchi belgilarni tasvirlovchi kodlashlarni oʻz ichiga oladi. Dastlab 7-bitlik qilib yaratilgan, keyinchalik 8-bitlik baytga oʻtkazilgan ASCII 8-bitlikning yarmi deb qabul qilina boshlandi. Komputerlarda odatda 8-bit va kod jadvalining ikkinchi yarmi bilan ishlangan ASCII kengaytmasi foydalaniladi. Boshqa tillar singari, Python satrlarini indekslash 0 dan boshlanadi. Masalan, "HELLO" satri quyidagi rasmda ko'rsatilganidek indekslanadi: 29 7.2-rasm. Satrni indekslashga misol 7.1-masala Bo'sh bo'lmagan satrdan n-indeks belgisini o`chirish uchun Python dasturini yozing. Dastur kodi Dastur natijasi str="Buxoro" indeks =2 n=int(input("indeks =")) Buoro qism_1 = str[:n] qism_2 = str[n+1:] print(qism_1 + qism_2) 7.2-masala Satrda takrorlangan belgilarni hisoblash uchun python dasturini yozing. Dastur kodi Dastur natijasi import collections t 3 str1 = 'Python dasturlash h 2 tili' 2 d = a 2 collections.defaultdict(int) s 2 for c in str1: l 2 d[c] += 1 i 2 for c in sorted(d, key=d.get, reverse=True): if d[c] > 1: print('%s %d' % (c, d[c])) 30 7.3-masala Satrning o'rtasiga satr qo'shish uchun Python dasturini yozing. Dastur kodi Dastur natijasi str = "[[]]" [[Python]] word = "Python" print(str[:2] + word + str[2:]) Mustaqil bajarish uchun topshiriqlar: 1. c simvoli berilgan. Uning kodi chop eting. 2. n (311) soni, arifmetik progressiyaning birinchi hadi a va uning ayirmasi d berilgan. Shulardan foydalanib o‘zida arifmetik progressiyaningdastlabki n ta hadini saqlovchi massiv tashkil etilsin. 39 Dastur kodi Dastur natijasi from array import* n=5 n=int(input("n=")) a1=10 a1=int(input("a1=")) d=2 d=int(input("d=")) [10, 12, 14, 16, m=[] 18] for i in range(1,n+1,1): m.append(a1) a1=a1+d print(m) 11.3-masala n o‘lchamli massiv hamda k va l butun sonlari berilgan. (11) soni, arifmetik progressiyaning birinchi hadi a va uning ayirmasi d berilgan. Shulardan foydalanib o‘zida arifmetik progressiyaning dastlabki n ta hadini saqlovchi massiv tashkil eting. 4. n (n>1) butun soni hamda birinchi hadi b va maxraji q bo‘lgan geometric progressiya berilgan. Shulardan foydalanib o‘zida geometrik progressiyaning dastlabki n ta hadini saqlovchi massiv tashkil eting. 5. n (n>2) butun soni berilgan. f1=1, f2=1, fk=fk-2+fk-1, k=3,4,… fk Fibonachchi sonlar ketma-ketligida birinchi n ta elementni o‘z ichiga oladigan n o‘lchamli butun sonli massiv ifodalansin va chop eting. 6. n (n>2), a va b butun sonlar berilgan. 1-elementi a ga, 2-elementi b, har bir keyingi elemeti barcha avvalgi elementlar (o‘zidan oldingi barcha element) yig‘indisiga teng bo‘lgan n o‘lchamli butun sonli massiv ifodalansin va chop eting. 7. n o‘lchamli a massiv berilgan. Uning elementlari teskari tartibda chiqaring. 41 12-MAVZU. PYTHONDA MASSIVLAR (IKKI O`LCHOVLI MASSIVLAR) 12.1-masala Kirish sifatida ikkita m (satr) va n (ustun) raqamlarini oladigan va ikki o'lchovli massiv hosil qiluvchi Python dasturini yozing. Massivning i-qator va j-ustunidagi element qiymati i*j boʻlishi kerak. i = 0,1.., m-1 j = 0,1, n-1. 12.1-rasm Dastur kodi Dastur natijasi row_num = int(input("Qatorlar Qatorlar sonini kiriting: ")) sonini col_num = int(input("Ustunlar kiriting: 2 sonini kiriting: ")) Ustunlar multi_list = [[0 for col in sonini range(col_num)] for row in kiriting: 3 range(row_num)] [[0, 0, 0], [0, 1, 2]] for row in range(row_num): for col in range(col_num): multi_list[row][col]= row*col print(multi_list) 42 12.2-masala Sizga tasvirni ifodalovchi n x n 2D matritsasi beriladi, tasvirni 90 gradusga (soat yo'nalishi bo'yicha) aylantiring. Tasvirni joyida aylantirishingiz kerak, ya'ni kirish 2D matritsasini to'g'ridan-to'g'ri o'zgartirishingiz kerak. Boshqa 2D matritsani ajratmang va aylanishni bajaring. Kiritish: matrix = [[1,2,3],[4,5,6],[7,8,9]] Chiqarish: [[7,4,1],[8,5,2],[9,6,3]] Kiritish: matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]] Chiqarish: [[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]] 43 Dastur kodi Dastur natijasi def rotate(matrix): [[7, 4, matrix.reverse() 1], [8, for i in range(len(matrix)): 5, 2], for j in range(i): [9, 6, 3]] matrix[i][j],matrix[j][i]=matrix[j][i], matrix[i][j] return matrix print(rotate([[1,2,3],[4,5,6],[7,8,9]])) Mustaqil bajarish uchun topshiriqlar: 1. n o‘lchamli butun sonli massiv berilgan. Berilgan massivni indekslari bo‘yicha tartibida tartiblab, massivdagi juft sonlar va ularning miqdori k chiqaring. 2. n o‘lchamli, butun sonli massiv berilgan. Berilgan massivdagi barcha toq sonlarni o‘z ichiga oladigan elementlarni o‘sish tartibida tartiblab, chop eting hamda ularning miqdori k aniqlang. 3. n o‘lchamli butun sonli massiv berilgan. Massivdagi juft sonli elementlarining indekslarini o‘sish tartibida, toq sonli elementlarining indekslarini kamayish tartibida tartiblab, massiv chop eting. 4. n o‘lchamli a massiv va k(1kn) butun soni berilgan. Massiv elementlari shart operatoridan foydalanmasdan quyidagi tartibda chop eting:ak,ak-1,ak-2, … a1. 5. n o‘lchamli a massiv berilgan(n-juft son). (indekslari o‘sish tartibida) Juft indeksdagi elementlari chiqaring. a2,a4,…,an. Shart operatoridan foydalanilmasin. 6. n o‘lchamli a massiv berilgan(n-toq son). Massivning toq indeksida turgan elementlari indekslarini kamayish tartibida tartiblab chiqaring. an, an-2, an-4, … a1 shart operatoridan foydalanilmasin. 7. n o‘lchamli a massiv berilgan. Avval toq indeksdagi elementlar, keyin juft indeksdagi elementlar kamayish tartibida chop eting. 44 13-MAVZU. PYTHONDA FUNKSIYALAR Pythonda funksiyani yaratish kalit so'z yordamida aniqlanadi: def my_function(): print("Hello from a function") Funksiyani chaqirish uchun funksiya nomidan, so'ngra qavsdan foydalaning: def my_function(): print("Hello from a function") my_function() Axborot argument sifatida funksiyalarga o'tkazilishi mumkin. Argumentlar funksiya nomidan keyin, qavs ichida ko'rsatiladi. Siz xohlagancha argument qo'shishingiz mumkin, ularni vergul bilan ajrating. Quyidagi misolda bitta argument (ism) bo'lgan funksiya mavjud. Funksiya chaqirilganda, biz to'liq ismni chop etish uchun funksiya ichida ishlatiladigan ism bo'ylab o'tamiz: def my_function(fname): print(fname + " Mustafoyev") my_function("Muslimbek") my_function("Oybek") 13.1-masala Berilgan butun son palindrom yoki palindrom emasligini aniqlash uchun Python dasturini tuzing. Agar x palindrom butun son bo'lsa, True qaytaring. Butun son palindrom bo'lib, u oldinga o'qigandek orqaga o'qiladi. Masalan, 121 palindrom, 123 esa yo'q. Cheklovlar x [-231, 231 - 1] oralig`idagi butun son. Dastur kodi Dastur natijasi def isPalindrome(x): True s=str(x) left,right=0, len(s)- 1 while left1) parametr tub son bo‘lsa true, aks holda false qiymat qaytaruvchi mantiqiy tipli IsPrime(n) funksiya tasvirlansin. Har bir 1 dan katta bo‘lgan 10 ta sondan iborat sonlar nabori berigan. Bu funksiyadan foydalanib berilgan nabordagi tub sonlar miqdorini aniqlang. 48 14-MAVZU. PYTHONDA FUNKSIYALAR. REKURSIV FUNKSIYALAR 14.1-masala Sonlar yig'indisini hisoblash uchun Python dasturini yozing. Dastur kodi Dastur natijasi def list_sum(num_List): 66 if len(num_List) == 1: return num_List else: return num_List + list_sum(num_List[1:]) print(list_sum([6,8,9,12,15,16])) 14.2-masala Butun sonni istalgan sanoq sistemasiga o`tish uchun Python dasturini yozing. Dastur kodi Dastur natijasi def to_string(n,base): 11100 conver_tString = "0123456789ABCDEF" if n < base: return conver_tString[n] else: return to_string(n//base,base) + conver_tString[n % base] print(to_string(28,2)) 49 14.3-masala Ro'yxat yig'indisini Rekursiya orqali hisoblaydigan Python dasturini yozing. Dastur kodi Dastur natijasi def recursive_list_sum(data_list): 21 total = 0 for element in data_list: if type(element) == type([]): total = total + recursive_list_sum(element) else: total = total + element return total print( recursive_list_sum([1, 2, [3,4],[5,6]])) 14.4-masala Manfiy bo'lmagan butun sonning faktorialini olish uchun Python dasturini yozing. Dastur kodi Dastur natijasi def factorial(n): 479001600 if n