PYTHON DASTURLASH TILI VA UNING IMKONIYATLARI
![O’ZBEKISTON RESPUBLIKASI OLIY VA O’RTA TA’LIM
VAZIRLIGI
BUXORO DAVLAT UNIVERSITETI
Fizika -matematika fakulteti
“Axborot texnologiyalari” kafedrasi
Toshboyeva Guljahon O`tkir qizi
“PYTHON DASTURLASH TILI VA UNING IMKONIYATLARI
BO`YICHA USLUBIY QO`LLANMA”
“Kasb ta’limi:Informatika va axborot texnologiyalari” ta’lim yo’nalishi bo’yicha
bakalavr darajasini olish uchun
BITIRUV MALAKAVIY ISHI
“Ish ko’rildi va himoyaga ruxsat Ilmiy rahbar_____H.Sh.Rustamov
berildi” «___» ______________2017y.
Kafedra mudiri Taqrizchi____
______dots.T.B.Boltayev «___» ______________2017 y.
«___» ______________2017 y.
«Himoya qilishga ruxsat berildi »
Fakutet dekani prof.Sh.M.Mirzayev
«___» ______________2017 y.
Buxoro -2017](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_1.png)
![2
MUNDARIJA
Kirish ……………………………………………………………………….. 3
I BOB. Python dasturlash tili va uning sintaksisi .
1.1. Python dasturlash tili yaratilish tarixi, imkoniyatlari va uni o`rnatish ….. 6
1.2.Python tili sintaksisi, asosiy operatorlari.. …………………………….... 12
1.3.Funksiya, fayllar bilan ishlash, sanoq sistemasi va son... ……………… 18
1.4.Satrlar bilan ishlash ………………………………… ……….. ………… 28
II BOB. Pythonda ma’lumotlar tuzilmasi va tilning standart modullari
2.1.Ro`yxat va kortej……. ………………………………………………… 33
2.2.Lug`atlar va to`plamlar bilan ishlash.. ………………………………….. 48
2.3. Modul tushunchasi, standart kutubxonalar, sys va copy moduli ……….. 55
2.4.Math, cmath, random va os moduli…………….. ……………………... 60
Xotima ……………………………………………………………………. 62
Adabiyotlar ……………………………………………………………… 63](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_2.png)
![3
K irish
“ Dunyoda ilmdan boshqa
najot yo`q va bo`lmagay. ”
Imom Al -Buxoriy.
O‘zbekistonda ijtimoiy -iqtisodiy sohada, shu jumladan axborot -
kommunikatsiya texnologiyalari, zamonaviy axborotlashgan jamiyatni
shakllantirish borasida ken g ko‘lamli islohotlar izchillik bilan va aniq maqsadni
ko‘zlab amalga oshirilmoqda.
Zamonaviy kadrlarni yetishtirish borasida respublikamiz ta‘lim tizimida tub
o’zgarishlar amalga oshirilmoqda. Bunga sabab, «Ta‘lim to’g’risida»gi qonun va
«Кadrlar tayyorlash milliy dasturi»ning qabul qilinishi va ularda ilmiy -texnika
taraqqiyoti yutuqlarini ishlab chiqarish va xizmat ko`rsatish sohasiga tadbiq qilish,
ijtimoiy -iqtisodiy rivojlanish bilan uzviy bog’liq еkanl igining aniq ko’rsatilishidir.
Hozirgi kun da ta’lim -tarbiya jarayoniga zamonaviy axborot texnologiyalarini
joriy etish, ta’limni kompyuterlashtirish muammolarini hal qilish muhim ahamiyat
kasb etadi.
O’zbekiston Respublikasi mustaqillik odimlarini dadil qo’yayotgan hozirgi
davrda axborotlashgan ja miyat qurish masalasi mamlakatimiz uchun naqadar katta
ahamiyat kasb etayotgani hech kimga sir emas. Internet hayotimizning bir bo’lagiga
aylandi, biz uning xizmatlaridan har kuni foydalanishga odatlandik.
Respublikamizda o’qitish texnologiyalarini zamonav iylashtirishni jadllashtirish
rivojlangan iqtisodiyotli mamlakatlarga qaraganda yanada dolzarb ahamiyatga ega.
Chunki hozirgi kunda milliy ta’lim tizimining salohiyati iqtisodiy rivojlanishning
yanada yuqori pog’onasiga ko’tarilishga amaliy imkoniyat ta’mi nlovchi asosiy
ijtimoiy resurs sifatida gavdalanadi.
Respublikamiz ta’lim tizimidagi asosiy vazifa jahon talablariga mos keluvchi
axborot texnologiyalarini o’qitish jarayoniga qo’llashdan iborat. O’zbekistonda
ta’lim tizimining axborotlashtirilishi xalqaro hamjamiyatda ham tan olindi.
Masofaviy ta’limni rivojlantirish bo’yicha bir qator dasturlar ishlab chiqilmoqda.
Iqtisodiyot va jamiyatda islohotlarning o’tkazilishi natijasida o’quv jarayonining
zahira hajmini keskin oshirish bo’yicha yangi talablar qo’yi ldi. Hozirgi kunda](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_3.png)
![4
axborot eng asosiy ishlab chiqaruvchi resurslardan biriga, iqtisodiyot va umuman
jamiyatning rivojlanish poydevoriga aylanmoqda.
Yangi axborot - kommunikatsion texnologiyalar hozirgi kunda eng dolzarb
mavzulardan biri bo’lib kelmoqda, sa babi har bir sohani o’rganish, izlanish va tajriba
orrtirish uchun turli usullardan foydalanish kerak bo’ladi. Shuning uchun yangi
axborot kommunikatsion texnologiyalardan foydalanish maqsadga muvofiqdir.
Respublikamizda olib borilayotgan islohotlarning tarkibida yuqori malakali
mutaxasislarning roli benihoya kattadir. Birinchi Prezidentimiz ta’kidlaganidek,
”Ertangi kun yangicha fikrlay oladigan zamonaviy bilimga ega bo’lgan yuksak
malakali mutaxasislarni talab etadi”. Shu sababli xalqimizning boy intellektual
merosi va umumbashariy qadriyatlari, zamonaviy madaniyat, iqtisodiyot, fan,
texnika va texnologiyalar asosida yuksak mutaxasislar tayyorlash tizimi ishlab
chiqildi va jadal sur’atlar bilan hayotga tad biq etilmoqda.
O’zbekistonda o’qitish texnologiyalarini zamonaviylashtirish, jadallashtirish
rivojlangan iqtisodiyotli mamlakatlarga qaraganda yanada dolzarb ahamiyatga ega.
Chunki hozirgi kunda milliy ta’lim tizimining salohiyatli tizimli rivojlanishi yan ada
yuqori pog’onaga ko’tarildi.
Bitiruv malakaviy ish mavzu sining dolzarbligi: mavzuning dolzarbligi
shundan iboratki , Python bu umumiy maqsadli dasturlash uchun keng tarzda
foydalaniladi gan yuqori darajali dasturlash tili, chunki o'rganish oson va qulay
sintaksisga ega. Undan tashqari skriptli dasturlash tillariga kiradi. Python dinamik
tipizatsiyaga ega, obyektga yo'naltirilgan dasturlash, funksional dasturlash,
strukturali, avtomatik xo tirani boshqarish va albatta ko'p patokli dasturlash tillaridan
biri. Python har xil platformalar uchun yozilgan masalan Windows, Linux, Mac
OS X, Palm OS, Mac OS va hokazo. Python Microsoft.NET platformasi uchun
yozilgan realizatsiyasi ham bor uni nomi IronPython. Bugungi kunda dunyoga
mashhur ko`plab kompaniyalar NASA, Google, Yandex, CERN, Apple computer,
Dream Works, kosmik teleskop institutlari Pythonni ishlatishadi. Dunyoni ng
rivojlangan mamlakatlari AQSH (Koliforniya Universiteti, Florida Universiteti,
Lova Universiteti, Massachustva Texnologiya Universiteti ), Kanada (Toronto
Universiteti, Alberto Universiteti), Buy uk Britaniya (Oksford Universiteti),](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_4.png)
![5
Fransiya, Rossiya, Avstraliya, Ispaniyaning universitet va kollejlarida o`qitishda
Python dasturlash tili qo`llaniladi. Pythonning o`ziga xos jihatlaridan biri bu
dasturni yozish davomida quyi darajadagi detallarni, mi sol uchun xotirani
boshqarishni hisobga olishga hojat qolmaydi. Shuningdek dasturni yozish davomida
ortiqcha kod yozishdan xalos bo`linadi. Masalan: massiv elementlarini tartiblash
misolini Paskal va Python dasturi dagi talqinini taqqoslab solishtirib ko`ra ylik.
Shu bilan birga Pythonda dastur yozayotganda begin -end, {} yoki satr tugagani
bildirish uchun nuqtali vergul (;) qo`yilmaydi.
Tadqiqot ob'yеkti va prеdmеti: Python dasturlash tili. Dasturiy ta’minotlar bilan
jihozlangan kompyuter xonalari . Python dasturlash tilida dastur tuzish uchun
WingWare , Paycharm, Paydev, Notepad++ va boshqa muhitlari . Dasturlar ni
tuzishda va muhitlar bilan ishlashda kompyuter texnologiyalari, shu bilan birgalikda
eng zamonaviy usullardan foydalanish. Biz tadqiqot obyekti sifatida Wingware
muhitida ishlab dastur natijalarini olishga harakat qildik.
Ishning maqsadi va vazifalari: Python dastulash tili h aqida uslubiy qo`llanma
yaratish . Python dasturini o`rnatish, uning sintaksisini, opera tor va funksiyalarini
o`rganish, arifmetik amallarni bajarishni, sonlar, satrlar bilan ishlashni hamda
ulard an foydalanib masalalar yechishni o`rganish. Masalalarr yechimini to`griligini
kompyuterga WingWare muhitiga kiritib tekshirib ko`rish. Python tilining
imkoniyatlarini ko`rish, uni bugungi kundagi qanday loyihalarni tuzishda
ishlatilishini o`rganish . Talabalar mustaqil shug’ullanishlari uchun uslubi y
qo’llanma ko’rinishida tayyorlash. Talabalarga kompyuterda mustaqil masala
yechish usullarini ko’rsatish va talabalarni dasturlashga bo’lgan qiziqishlarini
oshirish.
A.sort()
For i:= 0 to N-1 do
For j:=N -2 downto i do
If A[j] > A[j+1] then begin
c:=A[j]; A[j]:=A[j+1];
A[j+1]:=c
end;](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_5.png)
![6
Tadqiqot usuli va uslubiyoti: Wingwareda operatorlarni ishlatilishini,
sintaksisini o`r ganib dasturlash tilida kiritib natijalarni olib xulosalab har bir
operator va funksiyalar haqida to`liq ma’ lumot berishga harakat qilish.
Olingan asosiy natijalar : Qo’llanmamizda Pyhton dasturlash tili uning
imkoniyatlari sintaksisi kutubxonalari va Python dasturi haqida boshlang’ich va
mukammal tushunchalar amaliy misollar bilan birgalikda yoritildi. Boshqa
dasturlash tillariga nisbatan Python dasturini operator , funksiya , standart
kutubxonalarini o`rganib dastur tuzishda qo`llash va undan olingan na tijalar ning
afzallik tomonlari ko’rsatib berildi . Shular asosida Python dasturlash tili va uning
imkoniyatlari bo`yicha o`zbek tilida uslubiy qo`llanma yaratildi.
Natijalarning ilmiy yangiligi va amaliy ahamiyati: Mazkur Python dasturlash
tilini o`rganish talabalarga dasturlarni tuzish va masalalarni yanada mukammal
ishlay olish, samaradorligi va ahamiyatlilik darajasini oshirish kabi imkoniyatlar
yaratib bera oladi. Python dasturlash tilidan zamonaviy dasturlash tillari fanini
o`qitishda foydalanish ilmiy yangilikdir va bu borada uslubiy qo`llanma juda katta
ahamiyat kasb etadi.
Tadbiq etish dara jasi va qo’llanish sohasi . Ushbu qo`llanma Python dasturlash
tili haqidagi boshlangich tushunchalarni a kdemik litsey, kasb -hunar kolleji va oliy
ta’ limning talabal ar iga o`rgatishga mo `ljallangan. Bundan tashqari olimpiada
masalalarini yechishda va yaxshi natijalarga erishishda ushbu dasturlash tili dan
foydalanish ni amalga osh irishda mazkur qo`llanma dan foydalanish maqsadga
muofiq dir .
Ishning hajmi va tuzilishi: Kirish, 2 t a bob, har bir bobning qisqacha xulosasi,
foydalanilgan adabiyotlar ro’yxati va xotimalardan iborat holda bayon qilingan. I
bob da Python dasturlash tili va uning sintaksisi haqida malumot keltirilgan bo`lib
40 betdan iborat, II bobda Pythonda m a’lumotlar tuzilmasi va tilning standart
modullari keltirilgan. Bu bob 21 betdan iborat. Jami 11 ta chizma dan tashkil topgan .](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_6.png)
![7
I-BO B. PYTHON DASTURLASH TILI VA UNING SINTAKSISI
1.1 Python dasturlash tili yaratilishi tarixi , imkoniyatlari va uni
o`rnatish
Python dasturlash tilini yaratilishi 1980 -yil oxiri 1990 -yil boshlaridan
boshlangan. O`sha paytlarda uncha taniqli bo`lmagan Gollandiyaning CWI instituti
xodimi Gvido van Rossum ABC tilini yaratilish proe kt ida ishtirok etgan edi. ABC
tili Basic t ili o`rniga talabalarga asosiy dasturlash konsepsiyalarini o`rgatish uchun
mo`ljallangan til edi. Bir kun Gvido bu ishlardan charchadi va 2 hafta davomida
o`zining Macintoshida boshqa oddiy tilning interpretatorini yozdi, bunda u albatta
ABC tilining ba’z i bir g`oyalarini o`zlashtirdi. Shuningdek, Python 1980 -1990 -
yillarda keng foydalanilgan Algol -68, C, C++, Modul3 ABC, SmallTalk tillarining
ko`plab xususiyatla rini o`ziga olgandi. Gvido van Rossum bu til ni internet orqali
tarqata boshladi . Bu paytda o`zining “Dasturlash tillarining qiyosiy taqrizi” veb
sahifasi bilan internetda to 1996 -yilgacha Stiv Mayevskiy ismli kishi taniqli edi. U
ham Macintoshni yoqtirardi va bu narsa uni Gvido bilan yaqinlashtirdi. O`sha
paytlarda Gvido BBC ning “Monti Paytonni ng havo sirki” komediyasining muxlisi
edi va o`zi yaratg an tilni Monti Payton nomiga Pyth on deb atadi (ilon nomiga emas).
Til tezda ommalashdi. Bu dasturlash tiliga qiziqqan va tushunadigan
foydalanuvchilar soni ko`paydi. Boshida bu juda oddiy til edi. Shu nchaki kichik
interpretator bir nechta funksiyalarga ega edi. 1991 -yil birinchi OYD (Obyektga
Yo`naltirilgan Dasturlash) vositalari paydo bo`ldi.
Bir qancha vaqt o`tib Gvido Gollandiyadan Amerikaga ko`chib o`tdi. Uni
CNRI korparatsiyasiga ishlashga taklif etishdi. U o`sha yerda ishladi va korparatsiya
shug`ullanayotgan proektlarni Python tilida yozdi va bo`sh ish vaqtlarida tilni
interpretatorini rivojlantirib bordi. Bu 1990 -yil Pyt hon 1.5.2 versiyasi paydo
bo`lguncha davom etdi. Gvidoning asosiy vaqti korp aratsiyani proektlarini
yaratishga ketardi bu esa unga yoqmasdi. Chunki uning Python dasturlash tilini
rivojlantirishga vaqti qolmayotgandi. Shunda u o`ziga tilni rivojlantirishga
imkoniyat yaratib bera oladigan homiy izladi va uni o`sha paytlarda endi tas hkil
etilgan BeOpen firmasi qo`llab quvvatladi. U CNRI dan ketdi, lekin shartnomaga](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_7.png)
![8
binoan u Python 1.6 versiyasini chiqarib berishga majbur edi. BeOpen da esa u
Python 2.0 versiyani chiqardi. 2.0 versiyasi bu oldinga qo`yilgan katta qadamlardan
edi. Bu ve rsiyada eng asosiysi til va interpretatorni rivojlanish jarayoni ochiq
ravishda bo`ldi.
Shunday qilib 1.0 versiyasi 1994 -yil chiqarilgan bo`lsa, 2.0 versiyasi 2000 -
yil, 3.0 versiyasi esa 2008 -yil ishlab chiqarildi. Hozirgi vaqtda uchinchi versiyasi
keng q o`llaniladi.
Python dasturlash tili imkoniyatlari
Python – bu o'rganishga oson va shu bilan birga imkoniyatlari yuqori bo'lgan
oz sonlik zamonaviy dasturlash tillari qatoriga kiradi. Python yuqori darajadagi
ma'lumotlar strukturasi va oddiy lekin samarador ob yektga yo'naltirilgan dasturlash
uslublarini taqdim etadi.
Pythonning o'ziga xosligi
Oddiy, o'rganishga oson, sodda sintaksisga ega, dasturlashni boshlash uchun
qulay, erkin va ochiq kodlik dasturiy ta'minot.
Dastur ni yozish davomida quyi darajadagi detallarni, misol uchun xotirani
boshqarishni hisobga olish shart emas.
Ko'plab platformalarda hech qanday o'zgartirishlarsiz ishlay oladi.
Interpretatsiya( Интерпретируемый ) qilinadigan til.
Kengayishga ( Расширяемый ) moyil til. Agar dastur ni biror joyini t ezr oq
ishlashini xox lasak shu qismni C yoki C++ dasturlash tillarida yozib keyin shu
qismni python kodi orqali ishga tushirsa(chaqirsa ) bo'ladi.
Juda h am ko'p xilma -xil kutubxonalarga ega.
xml/html fayllar bilan ishlash
http so`rovlari bilan ishlash
GUI(grafik interfeys)
Web ssenariy tuzish
FTP bilan ishlash
Rasmli audio video fayllar bilan ishlash
Robot texnikada](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_8.png)
![9
Matematik va ilmiy hisoblashlarni programmalash
Pythonni katta proyektlarda ishlatish mumkin. Chunki, uni chegarasi yo`q,
imkoniyati yuqori . Shuningdek, u sodda va universalligi bilan programmalash tillari
orasida eng yaxshisidir.
Python dasturlash tilini o`rnatish.
Agar siz biror GNU/Linux distributivini ishlatayotgan bo'lsangiz ko'p xollarda
sizning tizimingizda python o'rnatilgan bo'ladi. Buni tekshirib ko'rish uchun
terminalingizdan quyidagi buyruqni ishga tushirib ko'ring. python -V
Agar sizda Python 3.4.3 yozuvi yoki shunga o' xshash yozuv hosil bo'lsa unda
hammasi joyida.
Windows operatsion tizimiga o'rnatish uchun www.python.org/downloads
web sah ifasiga o'tamiz va u yerdan oxirgi python versiyasini yuklab olamiz.
Pythonni o'rnatish odatiy dastur lar ni o'rnatish kabi kechadi. H ech qanday qiyin joyi
yo'q.
1.1 .1 -chizma . Python dasturining o`rnatiluvchi fayli.
Python dasturlash tilining o`rnatuvchi paketini ustiga sichqoncha
ko`ratkichini 2 marta bosamiz va bizga quyidagi oyna hosil bo`ladi .](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_9.png)
![10
1.1 .2 -chizma. Python dasturini o`rnatishni boshlashni ko`rsatuvchi oyna .
Bu yerda Install for all u sers -barcha foydalanuvchilar uchun. Install just for me -
faqat siz uchun, agar buni tanlab istalyatsiya qilsak ya’ni o`rnatsak Windo ws Vista
operatsion sistemasida xatolik yuz beradi va dastur ishlamaydi. Shuning uchun
Install for all users ni tanlaganimiz maqul. Keyin next tugmasi bosamiz.
1.1 .3 -chizma. Python dasturini o`rnatilish joyini ko`rsatish oynasi.
Bu yerda esa Python dasturlash tilini qayerda o`rnatilishi ko`rsatilayapti.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_10.png)
![11
1.1 .4 -chizma. Python dasturini o`rnatilish jarayoni.
Python o`rnatilyapti va bir necha sekunddan so`ng quyidagi oyna namoyon bo`ladi:
1.1 .5 -chizma. PIP kutubxonasini qo`shish jarayonida hosil boladigan oyna.
Bunda Console rejimida dastur ishga tushib pip kutubxonasini qo`shadi .](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_11.png)
![12
1.1 .6 -chizma. Python dasturini o`rnatish tugallanganligi haqidagi muloqot oynasi.
Va dasturni o`rnatish muofaqqiyatli tugallandi.
1.2. Python tili sintaksisi , asosiy operatorlari.
Python tili sintaksisi o`zi kabi sodda
Satr oxiri instruksiyaning oxiri hisoblanadi (nuqta vergul shart emas)
Har bir qator boshidagi bo`sh joy( отступ ) muhim ahamiyatga ega. Kiritilgan
amallar bo `sh joylarning kattaligiga qarab blok larga birlashadi. Bo`sh joy
istalgancha bo`lishi mumkin asosiysi bitta kiritilgan blok chegarasida bo `sh joy bir
xil bo`lishi kerak. Noto`g`ri qo`yilgan bo`sh joylar xatolik yuz berishiga olib kelishi
mumkin. Bitta probel bilan bo`sh joy hosil qilish yaxshi qaror emas uni o`rniga
to`rtta probel yoki Tab belgisini ishlatish kerak.
Pythonga kiritilgan amallar bir xil shablonda yoziladi. Bunda asosiy amal ikki
nuqta bilan tuga tiladi va uning orqasidan kiritilgan blok kodi ham joylashadi.
Odatda, asosiy amalning ostidagi satr bo`sh joy bilan ajratiladi.
Bir nechta maxsus holatlar](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_12.png)
![13
Bazan bir nechta amalni bitta satrga nuqtali vergul bilan ajratgan holda yozish
mumkin.
a = 1; b = 2; print(a, b )
Buni ko`p ham qo`llamang! Yaxshisi bunday qilmang, o`qishga noqulay.
Bitta amalni bir nechta satrga yozish mumkin faqat aylana, to`rtburchak va
figurali qavslardan foydanish kera k.
if (a == 1 and b == 2 and
c == 3 and d == 4):
print('spam'*3)
Kalit so`zlar
False – yolg`on .
True - rost .
None - “bo`sh ” obyekt .
and – mantiqiy VA amali .
with / as – konteks menejeri .
break –tsikldan chiqish .
class – metod va atribu tlarda iborat.
continue – tsikldan keyingi iteratsiyaga o`tish .
def – funksiyani aniqlash .
del – obyektni yo`qotish .
elif – aks holda, agar .
else – for/else yoki if/elsega qarang .
for – for tsikli .
from – moduldan bir nechta funksiyani import qilish.
if - agar .
import – moduldan import .
is –xotirani bitta joyida 2 ta obyektni jo`natsa bo`ladimi .
lambda –yashirin funksiyani aniqlash .
not –mantiqiy inkor amali .
or –mantiqiy Yoki amali .
while – while tsikli .](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_13.png)
![14
K omentariy
Kommentariy. Kommentariy # simvolidan keyin yoziladi va dastur kodini
o'qiyotgan dasturchi uchun eslatma bo'lib xizmat qiladi. Misol uchun:
print ('salom dunyo !') # print — bu funksiya
yoki:
# print — bu funksiya
print ('salom dunyo ! ')
Komentariy dastur kodini o'qiyotganlar uchun foydali bo'ladi va dastur nima
qilishini oson tushunishga yordam beradi. Unga yechimdagi muhim joylarni, muhim
bo'lgan qismlarni yozish mumkin.
O`zgaruvchilar
Biror ma'lumotni saqlash va uning ustida turli amallarni bajarish uchun bizga
o'zgaruvchilar yordam beradi. O'zgaruvchining qiymati, o'z nomi bilan aytib
tur ibdiki, o'zgarishi mumkin. U nd a xohlagan qiymatni saqlash mumkin.
O'zgaruvchilar kompyuter xotirasidagi joy bo'lib, u yerda siz biror ma'lumotni
saqlaysiz. O'zgaruvchining konstantadan farqi, o'zgaruvchiga dastur ishlashi
davomida (run time) murojaat qilib, uning qiymatini o'zgartira olamiz. Konstantaga
esa oldindan ma'lum bir qiymat beriladi va bu qiymatni o'zgartirib bo'lmaydi.
O'zgaruvchilarni nomlashda quyidagi qoidalarga amal qilish kerak:
O'zgaruvc hining birinchi belgisi alifbo h arfi (ASCII simvollari katta va kichi k
registrda ) yoki “_” (ostki chiziq ) simvoli bo'lishi mumkin.
O'zgaruvchilarning qolgan qismi harflardan (ASCII simvollari katt a va kichik
registrda), “_" (ostki chiziq ) simvoli va raqamlardan(0 -9) tashkil topishi mumkin.
O'zgaruvchilar nomlashda katta va kichik registrlar farqlanadi. Masalan, myname va
myName – bular boshqa -boshqa o'zgaruvchi hisoblanadi.
O'zgaruvchilarni to'g'ri nomlashga misollar : i, _my_name, name_23, a1b2_c3
O'zgaruvchilarni noto'g'ri nomlashga misollar: 2things, ' ', my -name, >a1b2_c3 va
“o'zgaruvchi qo'shtirnoqda"
O`zgaruvchi va konstantalarni qo`llanishiga misol :
i = 5
print (i)](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_14.png)
![15
i = i + 1
print (i)
s = "'Bu ko'p qatorlik satr.
Bu uning ikkin chi qatori."'
print (s)
Natija:
5
6
Bu ko'p qatorlik satr.
Bu uning ikkinchi qatori.
Yuqoridagi misolda d astlab biz 5 konstanta qiymatini '=' operatori yordamida
i o'zgaruvchiga o'zlashtirib olamiz.
i = 5
so'ng i o'zgaruvchi qiymatini print funksiyasi orqali ekranga chop etamiz.
print (i)
i o'zgaruvchining qiymatiga 1 qo'shamiz va o'zgaruvchining o'ziga saqlaymiz.
So'ng i o'zgaruvchining qiymatini chop etamiz.
i = i + 1
print (i)
Yuqoridagi kabi satr konstanta qiymatini s o'zgaruvchiga biriktiramiz va shundan
so'ng uni chop etamiz.
s = "'Bu ko'p qatorlik satr.
Bu uning ikkinchi qatori."'
print (s)
Eslatma: O'zgaruvchilar oddiy qiymat biriktirish bilan ishlatiladi. Hech qanday
oldindan e'lon qilib qo'yish talab etilmaydi.
Operatorlar va ifodalar
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](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_15.png)
![16
bajaradi va bu qiymatlar operandlar deyiladi. Bizning xolatda 2 va 3 – bu
operandlar.
Operator No mlanishi Ta'rifi Misol
+ Qo'shish
Ikkita
ob'yektning
yig'indisini
hisoblaydi
3 + 5 ifoda 8 ni
beradi;
'a' + 'b' ifoda 'ab' ni
beradi.
– Ayirish
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.
* Ko'paytirish
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.
** Darajaga ko'tarish
x sonini y
darajaga
ko'tarilganda
3**4 ifoda 81 ni
qaytaradi (ya'ni
3*3*3*3)](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_16.png)
![17
hosil bo'lgan
qiymatni
qaytaradi.
/ Bo'lish
'x' ni 'y' ga
bo'lganda
hosil bo'lgan
bo'linmani
qaytaradi.
4 / 3 ifoda
1.3333333333333333
ni beradi.
// Qoldi qsiz bo'lish
Bo'lishdan
hosil bo'lgan
bo'linmaning
qoldiqsiz
butun qismini
qaytaradi.
4 // 3 ifoda 1 ni
qaytaradi.
% Qoldiqlik bo'lish
Bo'lishdan
hosil bo'lgan
qoldiqni
qaytaradi.
8 % 3 ifoda 2 ni
beradi.
-25.5 % 2.25 ifoda 1.5
ni beradi.
<< Chapga surish
Bit sonni
chapga
ko'rsatilgan
miqdorda
suradi.
2 << 2 ifoda 8 ni
beradi. Ikkilik sanoq
tizimida 2 soni 10
ko'rinishiga ega
bo'ladi. Chapga 2 bit
miqdorida surish
1000 beradi, bu o'nlik
sanoq tizimida 8 ni
beradi.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_17.png)
![18
>> O'ngga surish
Bit sonni
o'ngga
ko'rsatilgan
miqdorda
suradi.
11 >> 1 ifoda 5 ni
beradi. Ikkilik sanoq
sistemasida 11 soni
1011 ko'rinishida
bo'ladi uni 1 bit
o'ngga sursak 101
hosil bo'ladi va bu
onlik sanoq tizimida 5
ni beradi.
&
'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.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_18.png)
![19
< Kichik
X qiymat y
qiymatdan
kichikligini
aniqlaydi.
Hamma
qiyoslash
operatorlari
True yoki
False
qaytaradi. Bu
so'zlardagi
katta xarflarga
e'tibor bering.
5 < 3 False qaytaradi
3 < 5 ifoda esa True
qaytaradi. Ixtiyoriy
bir – biri bilan
bog'langan ifodalar
tuzish ham mumkin:
3 < 5 < 7 ifoda True ni
qaytara di
> Katta
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.
x = 3; y = 6; x <= y
ifoda True qaytaradi.
>= Katta yoki teng
x qiymat y
qiymatdan
katta yoki teng
ekanligini
anqlaydi.
x = 4; y = 3; x >= 3
ifoda True qaytaradi.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_19.png)
![20
== Teng
Ob'yektlarning
tengligini
tekshiradi
x = 2; y = 2; x == y
ifoda True qaytaradi.
x = 'str'; y = 'stR';
x == y ifoda False
qaytaradi.
x = 'str'; y = 'str';
x == y if oda True
qaytaradi.
!= Teng emas
Ob'yektlar
teng emasligi
to'g'riligini
tekshiradi.
x = 2; y = 3; x != y
ifoda True qaytaradi.
N ot
Mantiqiy 'emas'
(Логическое НЕ)
Agar x True
bo'lsa,
operator False
qaytaradi.
Agar x False
bo'lsa operator
True
qaytaradi.
x = True; not x ifoda
False qaytaradi.
A nd
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](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_20.png)
![21
chapdagi ifoda qismi
False ga teng va butun
ifoda qiymati boshqa
oparatorlar
qiymatlariga
bog'liqsiz ham False
bo'ladi.
O r Mantiqiy 'yoki'
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.
1.2.1 -chizma. Operatorlar va ularning qo'llanilishi
Operatorlar va ularning qo'llanilishini qisqacha ko'rib chiqamiz. Misol uchun,
arifmetik ifodalar ini tekshirib ko'rish uchun interaktiv interpretatordan
foydalanishimiz mumkin. Python interpretatori xuddi kalkulator kabi ishlaydi.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_21.png)
![22
Matematik amallar va o'zlashtirishlarni qisqacha yozish
Ko'pincha b ir o'zgaruvchi ustida biror mat em atik amal bajarib, natijani o'sha
o'zgaruvchining o'ziga o'zlashtirish zaruriyati tug'iladi. Bu holda amallarni qisqacha
yozish mumkin. Siz
a = 2; a = a * 3
ni quyidagicha yozishingiz mumkin:
a = 2; a *= 3
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 Pyth on operatorlari prioriteti ko'rsatilgan. Bunda
yuqoridan pastga qarab Python operatorlari prioriteti oshib boradi. Bu shuni
anglatadiki, ixtiyoriy ifodada Python oldin eng q uyidagi operatorlarni hisoblaydi va
keyin esa yuqoridagilarini. Amaliyotda esa amal larni qavslar bilan aniq ajratish
tavsiya etiladi. Bu dastur kodini oson o'qishga yordam beradi.
Operator Izoh
Lambda lambda ifoda
O r Mantiqiy 'yoki'
A nd Mantiqiy 'va'
N ot x Mantiqiy 'emas'
in, not in Tegishlilikni tekshirish
is, is not Bir xillikni tekshirish
<, <=, >, >=, !=, == Taqqoslash](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_22.png)
![23
| 'yoki' bit operatori
^ 'shartlik yoki' bit operatori
& 'va' bit operatori
<<, >> Surilishlar
+, – Qo'shish va ayirish
*, /, //, % Ko'paytirish, bo'lish, qoldiqsiz bo'lish va qoldiqlik bo'lish
+x, -x Musbat va manfiy
~x 'emas' bit operatori
** Darajaga ko'tarish
x.attribute Atributga link
x[index] Indeks bo'yicha murojat
x[index1:index2] Kesib olish
f(argumentlar …) Funksiyani chaqirish
(ifoda, …) Kortej (Связка или кортеж)
[ifoda, …] Ro'yxat (Список)
{kalit:qiymat, …} Lug'at (Словарь)
1.2.2 -chizma. Python operatorlari prioriteti .
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](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_23.png)
![24
* 4 ifodadan ko'ra. Qavslarni o'ylab ishlatish kerak. Ortiqcha qavslarni ishlatishdan
saqlanin g. 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:
(2 + 3) * 4.
If - shart operatori.
If operatori shartni tekshirish uchun ishlatiladi. Pythonda shart operatorini bir
necha xil ko`rinishi mavjud:
1. if (mantiqiy ifoda): - shart operatorining bu ko`rinishi mantiqiy ifoda rost
bo`lgan holda qandaydir kod bajarilishi uchun ishlatiladi.
2. if (mantiqiy ifoda): … else -shart operatorining bu ko`rinishida mantiqiy ifoda
rost bo`lsa , birinchi ifodalar bloki bajariladi(bu blok “ if-blok ” deb nomlanadi), aks
holda keyingi ifodalar bloki bajariladi(bu blok “ else -blok ” deb nomlanadi) .
3. if ( mantiqiy ifoda): … elif(mantiqiy ifoda): … else - shart operatorining bu
ko`rinishida oldingi shart yolg`on bo`lganda keyingi shart tekshiriladi. Bu ifoda
o`zida ikkita bir -biriga bog`liq bo`lgan if else -if else ifodani bir ifodada if elif else
saqlaydi. Bu dasturni o`qishni osonlashtiradi.
If operatoriga misol :
N atija
Kiritilgan sonning juft toqligini aniqlash :](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_24.png)
![25
N atija :
Kiritilgan sonni musbat manfiyligini aniqlash:
Natija :
If opreratorini pythonda nafaqat shart operatori sifatida balki tanlash opretori
(switch) sifatida ham qo`llash mumkin . Masalan:
A va B haqiqiy sonlarni hamda arifmetik amal belgisini kiritgandan keyin
ifodani hisoblash dasturi:
Natija:](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_25.png)
![26
Yil oylarining raqami kiritilgach oy necha kundan iborat ekanligini topish
dasturi:
Natija:
Pythonda rostlikka tekshirish
Har qanday nolga teng bo`lmagan son yoki bo`sh bo`lmagan obyekt -rost
Nol yoki bo`sh obyekt -yolg`on
Taqqoslash amallari True yoki False qiymat qaytaradi
Mantiqiy operatorlar and va or rost yoki yolg`on obyekt -operandni qaytadi
Mantiqiy operatorlar:
X and Y
Rost, agar x va y ham rost bo`lsa
X or Y
Rost, agar x yoki y dan bittasi rost bo’lsa
Not X
Rost, agar x yolg`on bo`lsa
While sikl operatori
While operatori quyidagi umumiy ko`rinishga ega:
While sikl operatorining ishlash tartibi
While (shart) {
sikl _tanasi}](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_26.png)
![27
Agar (shart) rost ( true ) qiymatga ega bo`lsa, sikl_tanasi bajariladi. Qachonki
shart yolg`on ( false ) qiymatga teng bo`lsa sikl tugatiladi.
Agar (shart) true qiymatga ega bo`lmasa sikl tanasi biror marta ham
bajarilmaydi.
Toq sonlarni ekranga chiqarish: Natija:
For operatori
Python dasturlash tilida for operatori C va Paskal dasturlash tillarida
qo`llanishidan farq qiladi. Python da for operatori biroz murakkabroq, lekin while
sikliga qaraganda ancha tezroq bajariladi. For… in operatori obyektlar ketma -
ketligida iteratsiyani amalga oshir adi, ya’ni bu sikl har qanday iteratsiya qilinadigan
obyekt bo`ylab o`tadi(satr yoki ro`yxat bo`ylab) va har bir o`tish vaqtida sikl tanasini
bajaradi.
For operatoriga misol:
Range() va xrange funksiyasi
Agar dasturda sonlarni ketma -ket chiqarish kerak bo`lsa range()
funksiyasidan foydalaniladi. U arifmetik progressiyaga asoslangan ro`yxat tuzadi.
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Range(10) funksiyasi 10 ta elementdan iborat bo`lgan ro`yxat tuzadi. Bunda yuqori
chegara sifatida 10 beriladi, lekin u yaratilgan ro`yxat ketma -ketligiga kirmaydi.
Shuningdek funksiyaga quyi chegar a va qadamni ham berish mumkin.
>>> range(5,10)
[5, 6, 7, 8, 9]](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_27.png)
![28
>>> range(0,10,3)
[0, 3, 6, 9]
>>> range( -10, -100, -30)
[-10, -40, -70]
Ketma -ketlik indekslarini tanlash uchun ra nge() va len() funksiyalarini birgalikda
ishlating.
Katta diapazondagi raq amlardan foydalanib ro `yxatni yaratish range() funksiyasi
o`zini oqlamaydi yoki ba’zi hollarda xotira yetishmaydi .
Shunday hollarda Python da xrange() funksiyasidan foydalaniladi.
Break operatori
Break operatori agar siklning bajarilish sharti hali False qiymat olmagan
bo 'lsa ham yoki ketma -ketlik eleme ntlari hali tugamagan bo'lsa ham siklni to'xtatish,
ya'ni buyruqlar bajarilishini to'xtatish uchun xizmat qiladi . Shuni aytib o'tish
kerakki, for yoki while sikllarini break operatori bilan to'xtatilsa, ularga tegishli
bo'lgan else bloki bajarilmaydi .
Misol:
Natija:](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_28.png)
![29
Continue operatori
C ontinue operatori joriy blokdagi o'zidan keyingi qolgan barcha buyruqlarni
bajarmay siklning keyingi iteratsiyasidan davom ettirish uchun ishlatiladi.
Misol:
Natija:
1.3. Funsiya, fayllar bilan ishlash, sanoq sistemasi va son.
Funksiyani aniqlash. Def kalit s o`zi funksiyani aniqlashni taqdim etadi. Def
so `zidan so`ng funksiya nomi va qavs ichida formal parametrlar ro`yxati
ko`rsatiladi. Funksiya tanasini hosil qiluvchi instruksiyalar keyingi qatordan boshlab
bo`sh joy( отступь ) bilan yoziladi. Misol sifatida Fibonachi sonlar ro`yxatini
chiqaradigan funksiyani yaratishimiz mumkin:
Natija:
Yana bir misol sifatida kiritilgan sonning raqamlar yig`indisini hisoblovchi dasturni
funksiya yordamida yechishni ko`rsak:](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_29.png)
![30
Natija:
Python dasturiga kiritilgan funksiyalar . Tiplarni o`zgartiruvchi funksiyala r.
bool(x) - rostlikka tekshirishni standart usulidan foydalanuvchi bool tipiga
o`zgartirish. Agar x yolg`on bo`lsa yoki tushirib qoldirilgan bo`lsa, False qiymatini
qaytaradi, aksincha esa True qaytaradi.
bytearray([manba, [kodlash[xatolar]]]) - bytearray ga o`zgartirish. Bytearray -
0<=x<256 diapazondagi butun sonlarni o`zgarmas ketma -ketligi. Konstruktor
argumentlari bytearray() ga mos ko`rinishga ega bo`ladi.
complex([real],[image]) - kompleks songa o`zgartirish.
dict(object) - lug`atga o`zg artirish.
float([x]) -haqiqiy songa o`zgartirish. Agar argument ko`rsatilmagan bo`lsa, 0.0
qaytaradi.
frozenset([ketma -ketlik])
int([object],[asosiy sanoq sistemasi]) - butun sonni berilgan sanoq sist ema sidan
o`nlik sanoq sistemasiga o` tkaz ish.
list([object]) -ro`yxat tuzadi.
m emoryview(object) - memoryview obyektini tuzadi .
object() -hamma obyektlarga asos bo`lgan bosh obyektni qaytaradi.
range([start=0], stop,[step=1]) - step qadamli start dan stop gacha bo`lgan arifmetik
progressiya.
set(object) -to`plam ni yaratadi.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_30.png)
![31
slice([star t=0], stop, [step=1]) -step qadamga ega startdan stopgac ha ga bo`lgan
kesma obekti.
tuple(obj) - kortejga o`zgartiradi
Qo`shimcha funksiyalar
abs(x) - absolyut raqamni (sonni modulini) qaytaradi.
all( ketmaketlik )- agarda hamma elementlar haqiqiy bo`lsa (yoki ketmaketlik bo`sh
bo`lsa) True ni qaytaradi.
any(ketmaketlik) -agarda elementlardan hech bo`lmaganda bittasi haqiqiy bo`lsa
True ni qaytaradi. Bo`sh ketmaketlik uchun False qaytaradi.
ascii(object) - repr ga o`xshab obyekt ko`rinishiga mos qatorni ekranga xuddi
shunday qaytaradi.
bin(x) - butun sonni ikkilik sanoq sistemasiga o`tkazadi
chr(x) - x ning Unicode ga mos belgini qaytaradi.
classmethod(x) - sinf metodi ko`rsatgan funksiyani taqdim etadi.
compile( source, filename, mode, flags=0, don’t_inherit=False) - ketmaketlik eval
yoki exec funksiyalari bilan bajariladigan dastur kodiga komplyatsiya qilinishi.
Qator karetkani qaytaruvchi belgilar yoki nol ga teng baytlarga ega bo`lmasligi
kerak.
delattr(object, name) - “name” nomidan atributni qaytaradi.
dir([object]) - obyekt nomlarining ro`yxati, agar obyekt ko`rsatilmagan bo`lsa, local
maydondagi nomlar ro`yxati.
divmod(a,b) – a ni b ga bo`lgan da hosil bo`lgan bo`linmaning butun va qoldiq
qismi.
enumerate(iterable, start=0) - nomer va unga mos ketmaketlik a’zosidan tarkib
topgan kortejni har bir o`tishda taqdim etuvchi iteratorni qaytaradi.
eval(expression, globals=None, locals=None) - dastur kodi q atorini bajaradi.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_31.png)
![32
filter(function, iterable) - function yordamida rost qiymatni elementlarga
qaytaruvchi iteratorni qaytaradi.
format(value [,format_spec]) - formatlash (qatorni formatlash).
getattr( object, name,[default] )- obyekt atributini yoki default.glo bals() -global
nomlar lugatini chiqaradi.
hasattr(object, name) - “name” nomidagi atribut obyektga ega ekanligini
tekshiradi.
hash(x) - ko`rsatilgan obyektning heshini qaytaradi.
help([object]) - dasturni yordam qismiga kiritilgan ma’lumotnoma tizimini
chaqirish.
hex(x) - butun sonni o`n oltilik sanoq sistemasiga o`tkazish.
id(object) -obyekt manzilini qaytaradi .
input([promt]) - foydalanuvchi tomonidan kiritilgan qatorni qaytaradi. Promt -
foydalanuvchiga yordam.
isinstance(object, ClassInfo) -agarda obyek t classinf o yoki uning sinf osti
ekzemplari bo`lsa rost qiymat qaytaradi. Agarda ekzemplar berilgan tipdagi obyekt
bo`lmasa, funksiya yolg`on qiymat qaytaradi.
issubclass(sinf, ClassInfo) -agarda sinf ClasssInfo sinfostisi bo`lsa rost qiymat
qaytaradi. Sinf o`z -o`ziga sinfosti bo`ladi.
iter(x) - iterator obyektini qaytaradi.
len(x) -ko`rsatilgan obektni elementlar sonini qaytaradi.
locals() -lokal nomlar lug`ati.
m ap(function, iterator) -ketmaketlikning har bir elementiga function funksiyasini
qo`llash orqali yaratiladigan iterator.
m ax (iter,[args…]*[, key]) -ketma -ketlikning maksimal elementi.
m in(iter,[args…]*[, key]) -ketmaketlikning minimal elementi.
next(x) -iteratorning keyingi elementini qaytaradi.
oct(x) - butun sonni sakkizlik sanoq sistemasiga o`tkazadi.
open(file, mode=’r’, buffering=None, encoding=None, errors=None,
newline=None, closefd=True) - faylni ochadi va kerakli oqimni qaytaradi.
ord(x) - belgi kodi.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_32.png)
![33
pow(x, y[,r]) -(x**y)%r.
reversed(object) -yoyilgan obyektning iteratori.
print([object,…],*,sep=” ”, end=’/n’, file=sys.stdout) - ma’lumotlar ni ekranga
chop etish .
round(X,[N]) - verguldan keyin N - belgilargacha to`g`rilash.
setattr(obekt, nom, qiymat) - obyekt atributini belgilash .
sorted(i terable[, key][, reverse]) - tartiblangan ro`yxat.
staticmethod(function) - funksiya uchun statistik metod.
sum(iter, start=0) -ketmaketlik elementlarini yig`indisi.
type(object) - obyekt tipini qaytaradi.
type(name, bases, dict) - name sinfidagi yangi ekzemplarni qaytaradi.
vars([object]) - obyekt atributlarining ro`yxati. Jimlik holatida - local nomlar lug`ati.
Fayllar bilan ishlash
Fayllar bilan ishlash file klassi obyektini hosil qilish hamda uning read , readline
va write metodlari yordamida amalga oshiriladi. Faylni o’qish yoki faylga yozish
faylni ochish vaqtida ko’rsatilgan rejimga bog’liq. Fayl bilan ishlab bo’lgandan
keyin close metodini chaqirish kerak bo’ladi.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_33.png)
![34
Natija:
Dasturlash qiziqarli.
Agar ish zerikarli bo’lsa,
Unga quvnoq tus berish uchun – Pythonni ishlating!
Bu misol da biz birinchi navbatda faylni rejim ko’rsatgan holda open
funksiyasi bilan ochyapmiz. Rejim o’qish uchun («r»), yozish uchun («w») yoki fayl
oxiriga yozuvni qo’shish uchu n («a») bo’lishi mumkin. Faylni yana qanday holda
o’qish, yozish yoki matn qo’shish holatini ham ko’rsatish mumkin: («t») tekst
ko’rinishida yoki («b») binar ko’rinishida.
Bizning holatda faylni yozish («w») rejimida ochyapmiz va write metodi
yordamida matnni faylga yozyapmiz. Shundan so’ng faylni close metodi yordamida
yopyapmiz. So’ng xuddi shu faylni o’qish rejimida ochamiz. Bu holda rejimni
ko’rsatishga hojat yo’q. Sababi agar rejim ko’rsatilmasa, fayl o’qish rejimida
ochiladi. Faylni qatorma -qator readline metodi yordamida, sikl ichida o’qib olamiz.
Qachonki bu metod bo’sh qator qayta rsa, u holda bu biz faylning oxiriga yetib
borganimizni anglatadi va break yordamida siklni to’xtatamiz.
Shundan so’ng print funksiyasi yordamida o’qib olinayotgan satrlarni
ekranga chop qilamiz. Oxirida close metodi yordamida faylni yopamiz. Haqiqatda
dastur matnni faylga yozganligini tekshirish uchun poem.txt faylini tekshirib
ko’ring.
Pickle
Pythonning pickle moduli yordamida har qanday obyektni faylga saqlash va
keyinchalik fayldan o’qib olish mumkin. Bunday imkoniyat ob’yektlarni uzoq
muddat saqlash da qo’l keladi.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_34.png)
![35
Natija:
['olma', 'mango', 'sabzi']
Bu misolda obyektni faylga yoz ish uchun birinchi galda faylni binar
yozish (“ wb ”) rejimida ochilyapti , so ’ng pi ckle modulining dump funksiyasi
chaqirilyapti . Bu jarayon “konservatsiya” (“pickling”) deyiladi. Shundan so’ng
obyektni fayldan o’qib olish uchun pickle modulining load funksiyasidan
foydalanilyapti .
Sanoq sistemasi ning ishlatilishi
Maktab kursidagi i nformatika fanini dan bizga ma’lumki , sonlar nafaqat o`nlik
sanoq sistemasida balki boshqa sanoq sistemalarida ham bo`lishi mumkin. Masalan:
kompyuter ikkilik sanoq sistemasidan foydalanadi ya’ni 19 -soni ikkilik sanoq
sistemasida (kompyuterda) 10011 ko`rinishida ifodalanadi. Bu ndan tashqari
sonlarni bir sanoq sistemasidan ikkinchi sanoq sistemas iga o`tkazish kerak. Python
bu uchun bir qa ncha funksiyalarni taqdim etadi:
int([object],[sanoq sistemasi asosi]) - butun sonni berilgan sanoq sistemasidan
o`nlik sanoq sistemasiga o`tkazadi.
bin(x) - butun sonni ikkilik sanoq sistemasiga o`tkazadi](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_35.png)
![36
hex(x) - butun sonni o`n oltilik sanoq sistemasiga o`tkazadi
oct(x) - butun sonni sakkizlik sanoq sistemasiga o`tkazadi .
Son
Sonlar P ython dasturlash tilida 3 turda bo'ladi:
1. butun sonlar,
2. haqiqiy sonlar
3. kompleks sonlar
Butun songa misol 2,5, …
Haqiqiy sonlarga misol 3.23 va 52.3e -4.
Kompleks sonlarga misol ( -5+4i) va (2.3 -4.6i)
Butun son lar
Python interpretatorida yuqorida operator va ifodalar mavzusida ko`rib
chiqqan barcha operatorlarni oddiy matemetika kursida ishlatilganidek bajarilishini
ko`rdik. Ya’ni ko`paytirish, qo`shish, ayirish, bo’lish, darajaga ko`tarish va hokazo.
Endi esa butun sonlar ustida bajarish mumkin bo`lgan qo`shimcha metodlarni
ko`ramiz.
int.bit_length() - sonni oldidagi ishora va nollarni hisobga olmasdan uni ikkilik
sanoq sistemasida taqdim etish uchun kerakli bo`lgan bitlar soni.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_36.png)
![37
int.to_bytes(length, byteorder, *, signed=False) -shu sonni taqdim etuvchi baytlar
qatorini qaytaradi.
classmethod int.from_bytes (bytes, byteorder, *, signed=Fals e)-berilgan baytlar
qatoriga mos sonni qaytaradi .
Haqiqiy sonlar
Haqiqiy sonlar ham butun sonlar qo`llab quvvatlovchi operatsiyalarni qo`llab
quvvatlaydi. Haqiqiy sonlarni ishlatilishiga oddiy misol:
Haqiqiy sonlar ustida amal bajarishda foydalanish mumkin bo `lgan qo`shimcha
metodlar:
float.as_integer_ratio - shu haqiqiy son bilan juftlik munosabatida bo`lgan butun
son.
float.is_integer() - ko`rsatgich butun son bo`lish bo`lmasligini tekshiradi .](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_37.png)
![38
float.hex() -float ni hex ga (o`n oltilik sanoq sistemasiga) o`tkazadi.
classmethod float.fromhex(s) - o`n oltilik sanoq sistemasisdan floatga otkazadi.
Ya’ni float.hex() ni teskarisi.
Pythonda sonlar bilan ishlaydigan standart metodlardan tashqari bir qancha modullar
ham bor. Math moduli - murakkab matematik funksiyalarni taqdim etadi:
R andom moduli tasodifiy sonlar generatorini tasodifiy tanlov funksiyasini amalga
oshiradi:
Kompleks son
Pythonda komleks sonlar ustida arifmetik amallarni butun va haqiqiy sonlar ustida
bajarilgani kabi oddiy bajarish mumkin yani matematika kursida komleks sonlar
ustida arifmetik amallar qanday bajarilsa xuddi shunga o`xshab bajariladi.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_38.png)
![39
1.4.S atrlar bilan ishlash
Satrlar – bu belgilar ketma -ketligi. Ko'p hollarda satrlar so'zlar jamlanmasidan
tashkil topadi. Pythonda satrlar bilan ishlash juda q ulay. Bir qancha satr literallari
mavjud. Ularni ko`rib chiqamiz
Apostrof va qo`shtirnoqdagi satrlar
Apostrof va qo`shtirnoqdagi satrlar bir narsa. Uni ikki xil variantda keltirilishiga
sabab literallarga apostrof va qo`shtirnoq belgilarini maxsus xizmatchi belgilardan
foydalanmasdan kiritish mumkinligi deb hisoblanadi.
Ekran bilan ishlash ketma -ketliklari -xizmatchi belgilar](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_39.png)
![40
Ekran bilan ishlash ketma -ketliklari - klaviatura yodamida kiritish murakkab
bo`lgan belgilarni yozishga imkon beradi.
Xizmatchi belgilar Vazifasi
\n Keyingi qatorga o`tish
\a Qo`ng`iroq
\f Keyingi betga o`tish
\r Koretkani qaytarish
\t Gorizontal tabulatsiya
\v Vertical tabulatsiya
\N{id} Unicode ma’lumotlar bazasining ID identifikatori
\uhhhh Unicode ning 16 lik ko`rinishidagi 16 bitli belgisi
\Uhhhh. . . Unicode ning 32 lik ko`rinishidagi 32 bitli belgisi
\xhh Belgining 16 lik kodi
\ooo Belgining 8 lik kodi
\0 Null belgisi (satr oxiri belgisi emas)
1.4.1 -chizma. Ekran bilan ishlash ketma -ketliklari .
Ko`p qatorli satrlar
Python da satrlarni apostrof(‘) va qo`shtirnoqdan foydalanib hosil qilish
mumkin . Apostrof (bir tirnoq(')) yoki qo'sh tirno qni(") 3marta takrorlash orqali esa
ko'p qatorlik satrlarni xosil qilish mumkin. Milsol uchun:
Satr konstantalarini birlashtirish uchun ularni yonma -yon joylashtirishning o'zi
kifoya. Python avtomat ularni birlashtiradi. Misol uchun: "Ismingiz" "kim?" avtomat
"Ismingiz kim?" ga aylanadi.
Eslatma: Bir tirnoq va qo'sh tirnoqdagi satrlar bir -biridan hech ham farq qilmaydi .
Satrlarning funksiya va metodlari](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_40.png)
![41
Shunday qilib satrlar bilan ishlash haqida gapirdik, endi satrlarning
funksiyalari va metodlari haqida gapiramiz. Quyida satrlarning barcha funksiya va
metodlari keltirilgan.
Asosiy operatsiyalar
Konkatenatsiyalash (qo`shish)
Satrni takrorlash (dublikat qilish)
Satr uzunligi (len() funksiyasi)
Indeks bo`yicha chiqarish
Misoldan ko `rinib tur ibid iki Python manfiy indeks bo `yicha chiqarishga ruxsat
etadi , lekin hisoblash qator oxiridan boshlanadi .
Kesmani ajratib olish . Kesmani ajratib olish operatori:[X:Y]. X - kesmaning boshi,
Y esa –oxiri. Y raqamli belgi kesmaga kirmaydi. Jimlik holatida birinchi indeks 0
ga teng, ikkinchi indeks esa qator uzunligiga teng bo`ladi.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_41.png)
![42
Bundan tashqari kesmani ajratib olish da qadamni belgilash mumkin
Satrlarning qo`shimcha funksiya va metodlari
Metodlarni chaqirganga Pythondagi satrlar o`zgarmaydigan ketma -ketliklar
darajasiga kirishini inobatga olishimiz kerak. Bu degani hamma funksiya lar va
metodlar faqat yangi satrni tuzishi mumkin .
Shuning uchun hamma metodlar yangi satrni qaytaradilar, va u keyin boshqa nomga
ega bo`ladi.
S = ‘str’; S = “str”; S = ‘’‘str’‘’; S = “”“str”“” - Satrlarni literallari
S = “s \np \ta \nbbb” - ekran bilan ishlash ketma -ketliklari
S = r”C: \temp \new” - Formatlashtirilmagan satrlar
S = b”byte” - Baytlar qatori
S1+S2 - Konkatenatsiya (qo`shish)
S1*3 - Satrni takrorlash
S[i] - Indeks bo`yicha murojaat
S[i:j:step] - Step qadamli i elementdan boshlab j elementgacha bo`lgan k esmani
ajratib olish .](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_42.png)
![43
Len(s) - Satr uzunligi
S.find(str,[start],[end]) - Satrdan satr o stini izlash. Satr osti ning birinchi belgisini
o`rin ini qaytaradi, agar satrda satr osti bo`lmasa -1ni qaytaradi .
S.rfind(str,[start],[end]) - Satrdan satr ostini axtarish. Oxirgi kirish raqamini yoki 1
ni qaytaradi
S.index(str,[start],[end]) - Satrdan satr ostini axtarish. Birinchi kirish raqamini
qaytaradi yoki ValueError istisnosini chaqiradi
S.rindex(str,[start],[end]) - Satrdan satr ostini axtarish. Oxirgi kirish raqamini
qaytaradi yoki ValueError istisnosini chaqiradi
S.replace(shablon,almashuv) - Shablonni almashtirish
S.split(belgi) - Satrni har bir so`zini alohida alohida ajratib chiqish .
S.isdigit() -Satrda raqamlar ishtir ok etganligini tekshirish.
S.isalpha() -Satr faqat harflardan iboratligini tekshirish
S.isalnum() -Satr harf yoki raqamlardan iboratligini tekshiradi
S.islower() -Satr quyi registrdagi belgilardan iboratligini tekshiradi](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_43.png)
![44
S.isupper() -Satr yuqori registrdagi belgilardan iboratligini tekshiradi
S.isspace ()-Satrda ko `rinmaydidan belgilar borligini tekshirish (probel , sahifani
o`tkazish belgisi (‘\p’), yangi satrga o`tish (‘\n’), koretkani qaytarish (‘\r’), gorizontal
tabulyatsiya (‘\t’) va vertikal tabulyatsiya )
S.istitle() -Satrda so`zlar bosh harf bilan boshlanishini tekshirish
S.upper() -Satrni yuqori registrga o`zgartirish
S.lower() -Satrni quyi registrga o`zgartirish
S.starswith(str) - S satr str shablonidan boshlanishini tekshirish](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_44.png)
![45
S.endswith(str) - S satr str shabloni bilan tugashini tekshirish
S.join(ro`yxat) - S ajratuvchiga ega ro`yxatdan qatorni yig`ish
Ord(belgi) - Belgiga mos ASCII kodni qaytaradi
Chr(son) - ASCII kodga mos belgini qaytaradi
S.capitalize() -Satrning birinchi belgisi yuqori registrda qolganlari ni quyi registr ga
o`tkazadi .
S.center(width,[fill]) - Chegaralari bo`yicha fill (jimlik holatida probel) belgisi
turuvchi markazlashtirilgan satrni qaytaradi.
S.expandtabs(tabsize) - Joriy ustungacha bir yoki bir qancha probellar bilan
tabulyatsiyaning hamma belgilari almashtirilgan satr nusxasini qaytaradi. Agarda
TabSize ko`rsatilmagan bo`lsa tabulyatsiya hajmi 8 probelga teng bo`ladi
S.l strip([chars]) - Satr boshidagi probel belgilarini olib tashlash
S.rstrip([chars]) - Satr oxiridan probel belgilarini olib tashlash
S.strip ([chars]) Satr boshidan va oxiridan probel belgilarini olib tashlash
S.partition(shablon) - Birinchi shablon oldida turuvchi qismni keyin shablonni
o`zini v a shablondan keyin turuvchi qismga ega kortejni qaytaradi. Agarda shablon
topilmasa satrga ega bo`lgan kortejni qaytaradi, avval ikki bo`sh satr keyin satrni
o`zini .
S.rpartition(sep) - Oxirgi shablon oldida turuvchi qismni keyin shablonni o`zini va
shablondan keyin turuvchi qismni qaytaradi. Kortej qator o`zidan va undan keyin
ikkita bo`sh qatordan iborat bo`ladi.
S.swapcase() -Quyi registrdagi belgilar ni yuqori registrga, yuqorilarni esa quyiga
o`tkazadi](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_45.png)
![46
S.title() -Har bitta so`zning birinchi harfini yuqori registrga qolganlarini esa quyi
registrga o`tkazadi
S.zfill(width) - Qator uzunligini Widthdan kam qilmayd i agar kerak bo`lsa birinchi
belgilarni nollar bilan to`ldiradi .
Xulosa.
Birinchi bobimiz “Python dasturlash tili va uning sintaksisi” deb nomlanadi.
Bunda Python dasturlash tilining yaratilish tarixi, imkoniyatlari va Python dasturlash
tilini Windows operatsion tizimida o`rnatish haqida yozilgan . Python dasturida
ishlaydigan foydalanuvchilar u chun uning sintaksisi, asosiy operatorlari, fayllar,
funksiyalar bilan ishlash sanoq sistemalari va satrlar bilan ishlash haqida muhim
zaruriy ma’ lumotlar keltirilgan.
Bu bobni o`qib, o`rgangan har bir qiziquvchi Python dasturini o `rnatish
boshqa odatiy dasturlarni o`rnatish kabi hech qanday qiyinchiliksiz o`rnatilishini,
tilning sintaksisi o`zi kabi sod da va oson ekanligini, o`zgaruvchilarning tipini e’lon
qilinmasligini, shuningdek sonlar bilan ishlaganda nafaqat butun va haqiqiy sonlar
ustida balki kom pleks sonlar ustida ham amallar bajarishni ko`rsatilgan misollar
yordamida o`rgana oladi va uni amaliyotda bajara oladi.
Satrlar bilan ishlash va ular ustida amallar bajarish haqida ham yetarlicha
ma’lumotlar keltirilgan.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_46.png)
![47
II BOB. PYTHONDA MA’LUMOTLAR TUZILMASI VA TILNING
STANDART MODULLARI.
2.1. Ro`yxat va kortej
Ro`yxat - Pythonda erkin turdagi obyektlarning o`zgaruvchan qatorlashgan
kolleksiyasi hisoblanadi (massivga o`xshash, lekin tiplar har xil bo`lishi mumkin).
Ro`yxatlardan foydalanish uchun ularni tuzish kerak. Ro`yxatni har xil
yondashuvlar yordamida yarati sh mumkin. Masalan har bir iteratsiya qilinadigan
obyektni (masalan satrni) Pythonni o`ziga kiritilgan list funksiyasi yordamida
kiritish mumkin.
Ro`yxatni yana literallar yordamida tuzish mumkin.
Misoldan ko`rinadiki ro`yxat istalgancha obyektdan yoki hech narsadan
(bo`sh) tashkil topishi mumkin.
Ro`yxat yaratishning yana bir usuli - ro`yxatlarning gene ratorlari . Ro`yxat
generatori bu - ketma -ketlikni har bir elementiga arifmetik amalni qo`llab yangi
ro`yxat tuzish usuli. Generatorlar for sikliga jud a o`xshash bo`ladi.
Ro`yxatlar generatorining juda murakkab konstruksiyalari bor.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_47.png)
![48
Ro`yxatning funksiya va metodlari
Ro`yxatni yaratgandan so`ng uning ustida turli amallarni bajarish kerak
bo`ladi , albatta , buni ng uchun esa Pythonni o`ziga kiritilgan bir qancha funksiya va
metodlar bor.
Metod Vazifasi
List.append(x) Ro`yxat oxiridan element qo`shish
List.extend(L) Oxiriga hamma elementlarni qo`shib
list ro`yxatini kengaytiradi.
List.insert(i,x) i-elementga x qiymatini kiritadi
List.remove(x) Ro`yxatdan x qiymatga ega elementni
o`chiradi
List.pop([i]) Ro` yxatning i -elementini o`chiradi va
qaytaradi. Agarda indeks
ko`rsatilmagan bo`lsa oxirgi element
o`chiriladi
List.index(x,[start],[end]) X qiymatga teng start dan end gacha
birinchi elementni qaytaradi
List.count(x) X qiymatga teng elementlar sonini
qaytaradi
List.sort([key=funksiya]) Funksiya asosida ro`yxatni saralaydi
List.reverse() Ro`yxatni ochadi
List.copy() Ro`txatning nusxasi
List.clear() Ro`yxatni tozalaydi
2.1.1 -chizma. Ro`yxat metodlari tasnifi
Ro`yxatda metodlarni qo`llanilishini misollar yordamida ko`rib chiqsak](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_48.png)
![49
Ro`yxatning ishlatilishiga misol: bunda ro`yxatning maksimal elementini topish 2
xil usulda max() standart funksiyasi yordamida va har bir elementni birma -bir
solishtirib chiqish orqali yechilgan.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_49.png)
![50
Natija:
Kortejlar (tuple )
Kortejlar bir nechta ob ’yektlarni birgalikda saqlashga xizmat qiladi . Ularni
ro’yxatlarga o’xshatish mumkin. Lekin ular ro’yxatlar kabi boy funksionallikka ega
emas. Ularning asosiy jihati qatorlarga o’xshab o’zgarmasliklaridir. Kortej -
elementlar orasini v ergul bilan ajratish orqali hosil qilinadi. Kortejga ma’no jihatdan
o`zgarmas ro`yxat deb ta’rif berdik. Shu o`rinda savol tug`iladi. Ro`yxat bo`lsa
kortej ni maga kerak:
1. Turli holatlardan himoyalanish. Bu degani kortej o`zgartirishlardan
himoyalangan bo`ladi, rejali (bu yomon) va tasodifiy (bu yaxshi) o`zgarishlardan
xalos bo`ladi.
2. Kichik hajm. So`zlar bilan ifodalamasdan.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_50.png)
![51
3. Kortejdan lug`at kaliti sifatida foydalanish mumkin :
Kortej afzalliklari haqida bilib oldik. Endi kortej bilan qanday ishlashni ko`ramiz.
Bu xuddi ro`yxatlar bilan ishlash ga o`xshaydi. Bo`sh kortejni yaratamiz:
Bir elementli kortejni yarata miz:
Stop. Satr paydo bo`ldi. Bizga esa kortej kerak. Qanday qilib kortejga ega bo`lamiz?
Ura! Ishladi! Hamma gap vergulda. Qavuslar bu yerda hech nimani anglatmaydi.
Kortejni yana quyidagicha yatish mumkin.
Lekin qa vus qo`yish lozim, ba’zi bir holatlar borki qavuslar juda kerak. Tuple()
funksiyasi yordamida iteratsiyalangan obyektdan kortej yaratish mumkin:
Kortejning elmentlariga ham ro`yxatlardagi kabi indeks bo` yicha murojat
qilish mumkin (masalan: element nechanchi indeksdaligini bilish uchun). Bunda
ham indekslash 0 (nol) dan boshl anadi ya’ni 6 ta elementdan iborat kortejning](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_51.png)
![52
indeksi 0..5 gacha bo`ladi. Kortej indek si esa [] operatori orasiga beriladi. Agar bizga
kortejning elementilarini teskaridan chiqarish kerak bo`lsa uning indeksini manfiy
(masalan: kortej[ -5]) beramiz. Quyidagi misolda shularni ko`rib chiqamiz.
Natija:
Kortej kesmasi
Kortejning biror qi smini bo`lagini ya’ni kesmasini ajratish uchun(masalan: 2
elementidan to 5 -chi elementigacha) uning indekslari orasiga -ikki nuqta(:)
qo’yamiz.
Natija:
Kortejni o`zgartirish
Kortejlar ustida amal bajarayotganda “+” operatori orqali ikkita kortejni
qo`shishimiz mumkin, va bu konkatenatsiya deb ham ataladi.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_52.png)
![53
Kortej elementlarini takrorlash uchun “*” operatoridan foydalanamiz. “+” va
“*” operatorlarini kortejlarda qo`llaganimizdan so`ng yangi ko`rinishdagi kortejga
ega bo`lamiz
Kortejning funksiya va metodlari
Count(x) -kortejdagi x elementi sonini qaytaradi.
Index(x) -kortejdagi x elementining indeksini qaytaradi.
Any() -agar kortej elementi mavjud bo`lsa True qiymat qaytaradi, aks holda (kortej
bo`sh bo`lsa) False qiymat qaytaradi.
Max() -kortejning maksimal elementini qaytaradi.
Min() - kortejning minimal elementini qaytaradi.
Len() -kortejning uzunligini qaytaradi .
Sorted() -kortej elementlaridan iborat yangi tartiblangan ro`yxatni qaytaradi.
Sum() -kortej elementlari yig`indisini qaytaradi.
Elementni kortejga tegishli ekanligini tekshirish uchun in kalit so`zidan
foydalaniladi:](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_53.png)
![54
Natija:
True
2.2. Lug`atlar va to`plamlar bilan ishlash
Pytho ndagi lug`atlar kalit bo`yicha kirishga ruxsat etuvchi erkin
obyektlarning tarti blangan jamlanmasi. Ularni yana asso tsiativli massivlar yoki hesh
jadvallar deb nomlaydilar. Soddaroq qilib aytadigan bo`lsak l ug’at xuddi manzillar
kitobiga o’xshaydi, ya’ni b iror insonning ismini bilgan holda uning manzili yoki u
bilan bo’g’lanish ma’lumotlarini olish mumkin. Lug`atlar bilan ishlash uchun ham
albatta uni yaratish kerak. Lug`atni yaratishni esa bir necha usullari bor.
Birinchidan literal yordamida:
Ikkinchidan dict() funksiyasi yordamida:
Uchinchidan fromkeys metodi orqali:](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_54.png)
![55
To`rtinchidan lug`at generatori yoradamida ular ro`yxat generatoriga juda
o`xshash:
Lug`at metodlari
Dict.clear() - lug`atni tozalaydi.
Dict.copy() -lug`at nusxasini qaytaradi.
Classmethod dict.fromkeys(seq[, value]) - Seq dan kalitni va Value qiymatlariga
ega bo`lgan lug`atni yaratadi.
Dict.get(key[, default]) -kalit qiymatini qaytaradi, lekin u bo`lmasa xatolik beradi ,
default (jimlikda None) qaytaradi .
Dict.items() -juftliklarni qaytaradi(kalit, qiymat)
Dict.keys() - lug`atdagi kalitlarni qaytaradi
Dict.pop(key[default]) -kalitni yo`qotib qiymatni qaytaradi. Agarda kalit bo`lmasa
defaultni qaytaradi.
Dict.popitem() - juftlikni o`chirib qaytaradi (kalit, qiymat). Agarda l ug`at bo`sh
bo `lsa KeyError istisnoni chaqirad i. Esingizda tursin lug`atlar tartibli emas.
Dict.setdefault(key [, default]) -kalit qiymatni qaytaradi , lekin u bo`lmasa xatolik
bermaydi, default qiymatga ega kalitni yaratadi (jimlikda None).
Dict.update([oth er]) - other dan juftliklarni (kalit, qiymat) kiritib lug`atni to`ldiradi.
Mavjud bo`lgan kalitlar qaytadan yoziladilar. None (eski lug`at) qaytaradi.
Dict.values() -lug`atdagi qiymatni qaytaradi.
natija:](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_55.png)
![56
lug`atning qiymati: dict_values(['Gulnoza', '8', '1'])
lugatdagi juftliklar yani kalit va uning qiymatlari: dict_items([('ismi', 'Gulnoza'),
('yoshi', '8'), ('maktabi', '1')])
lugatning kalitlari: dict_keys(['ismi', 'yoshi', 'maktabi'])
lugatning nusxasi: {'ismi': 'Gulnoza', 'yoshi': '8', 'maktabi': '1'}
To`plam (set & fro zenset )
Pythondagi to`plam - tasodifiy tartibda va takrorlan maydigan elementlardan
tashkil topgan “konteyner” deyiladi. To`plam ni yaratamiz:
Misoldan ko`rinadiki to`plam lug`atdagi literalga o`xshash literalga egalik
qiladi, lekin leteral yordamida bo`sh to`plam ni yaratib bo`lmaydi.
To`plam dan takrorlanadigan elementlardan qutulish uchun foydalanish qulay
bo`ladi :
To`plam lar bilan bir qancha operatsiyalarni bajarish mumkin: birlashmalalarni
topish, kesimlarni topish…
Len(s) - to`plam dagi elementlar soni( to`plam hajmi).
X in s - ‘x’ ‘s’ to`plamg a tegishli bo`ladimi yo`qmi shuni tekshiradi](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_56.png)
![57
Set.isdisjoint(other) -agarda set va other umumiy elementlarga ega bo`lmasalar rost
qiymat qaytaradi.
Set==other - set ning hamma elementlari otherga tegishli bo`ladilar otherni hamma
elementlari setga tegishli bo`ladilar.
Set.issubset(other) yoki set<=other -set ning hamma elementlari other ga tegishli
bo`ladilar.
Set.issuperset(other) yok i set>=other -analogik holat.
Set.union(other, …) yoki |other|… -bir qancha to`plam lar birlashmasi.
Set.intersection(other, …) yoki &other&… - kesib olish.
Set.difference(other, …) yoki -other -… -other ga tegishli bo`lmagan set ning
hamma elementlar to`plam i.
Set.symmetric_difference(other); set^other - birinchi to`plamda uchraydigan,
lekin ularning ikkala to`plamning kesishmasida uchramaydigan elementlar.
Set.copy -to`plam nusxasi
To`plamni to`g`ridan -to`g`ri o`zgartiradigan operatsiyalar
Set.update(other, …); set|=other| … - to`plam birlashmasi
Set.intersection_update(other, …); set&=other&… - to`plam kesishmasi
Set.difference_update (other, ...); set -= other | ... -to`plam ayirmasi
Set.symmetric_difference_update (other); set ^= other - birinchi to`plamda
uchraydigan, lekin ularning ikkala to`plamning kesishmasida uchramaydigan
elementlar tashkil topgan to`plam.
Set.add (elem) - to`plamga element qo`shadi.
Set.remove (elem) - to`pla m dagi elementni o`chiradi. Agarda ko`rsatilgan element
to`plamda mavjud bo`lmas a KeyError ni qaytaradi.
Set.discard (elem) - gar to`plamda ko`rsatilgan element bo`lsa uni o`chiradi.
Set.pop ()- to`plamdagi birinchi elementni o`chiradi , lekin top`lam elementlari tartib
bilan joylashmagani uchun birinchi element qaysiligini aniq ko`rsatib bo`lmaydi.
Set.clear() - to`plamni tozaydi.
2.3. Modul tushunchasi , standart kutubxonalar, sys va copy moduli.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_57.png)
![58
Standart kutubxona modullarini o`rganishdan oldin Pythonda modul
tushunchasiga aniqlik kir itib olish lozim.
Pyth on tilida bir xil vazifani bajaruvchi modullar yig`indisini bitta paketga
joylashtirish mumkin. Shunday paketlardan biri sifatida XML paketini misol qilib
keltirish mumkin. Ushbu paket XML ning har xil aspektlarini qayta ishlashga
mo`ljallangan modullardan tashkil topgan.
Python tilda dastur tuzishda modul atributlari modulda aniqlangan nomlar
bo`lgan obyekt modul sifatida taqdim etiladi.
Bu misolda datetime moduli import qilinayapti. Import operatorining ishi
natijasida mazkur nomlar kengligida dateti me nomi bilan obyekt paydo bo`lyapti .
Python tilida modullar oddiy (Pythonda yozilgan) va kengaytiriladigan ya’ni
boshqa tilda yoziladigan masalan Python interpretatori yozilgan C dasturlash tilida
yozilgan modullarga bo`linadi. Foydalanuvchi nuqtai nazari da ular ishlash tezligi
bilan farq qiladi. Satandart kutubxonada modul 2 xil varian tda bo`ladi: Pytonda
yozigan yoki C da. Bunga misol sifatida pickle va cpickle modull arini keltirish
mumkin. Odatda P ythonda oddiy modullar kengaytirilgan modullarga nisbatan
ishlatishda qulay hisoblanadi.
Modul funksiyalaridan foyda lanish uchun uni boshqa dasturdan yuklash
(импортировать ) mumkin. Dastlab standart kutubxonalar modullarini qanday
ishlatishni ko’ raylik.
Natija:](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_58.png)
![59
Bu misolda dastlab sys moduli import buyru g`i yordamida yukla nyapti .
sys moduli Py thon interpretatoriga va uning muxitiga ya ’ni tizimiga (system)
tegishli funksiyalardan tashkil topgan. Pyth on import sys buyrug` ini
bajarayotganda sys modulini qidiradi. Bu holatda sys standart modullar dan biri
bo `lganligi uchun, Pyth on uni qayerdan izlash kerakligini biladi. Agar bu oddiy
modul, ya ’ni Pyth onda yozilgan modul bo `lganida edi, u hold a Pyth on
uni sys.path ko `rsatilgan kataloglardan izlagan bo `lar edi. Agar modul topilsa,
undagi buyruqlar ba jariladi va bu modul foydalanishga ( доступным ) shay holatga
keladi. sys modulidagi argv o’zgaruvchi siga murojat qilish nuqta orqali amalga
oshiriladi ya’ni sys.argv. Bunday ifodalashning afzalligi dasturda ishlatilishi
mumkin bo `lgan argv o `zgaruvchi si bilan xatoliklar yuz bermaydi . sys.argv qatorlar
ro `yxati hisoblanadi. U buyruqlar qatori argumentlaridan ya ’ni buyruqlar qatoridan
dasturga uzatilgan argumentlardan tashkil topgan.
Python dasturida modullarni ulash import operatori orqali amalga oshirili shi
yuqoridagi misolda ko`rdik. Modullarni ulashini ham 2 xil shakli mavjud: birinchisi
import operatori orqali bo`lsa, ikkinchisi from -import operatori orqalidir. From…
import … operatori - argv o`zgaruvchisini dasturga to`g`ridan -to`g`ri yuklash
uchun hamda har doim sys.argv deb yozmaslik uchun, from sys import argv
ifodasidan foydalanish mumkin. sys modulida ishlatiladigan hamma nomlarni
yuklash uchun “from sys import *” buyrug `ini bajarish mumkin .](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_59.png)
![60
Standart kutubxonalar
Python tili standart kutubxonasining modullarini shartli ravishda mavzular
bo`yicha quyidagi guruhlarga ajratish mumkin:
1. Bajarish davri servislari. Modular: sys, atexit, copy, traceback, math, cmath,
random, time, calendar, datetime, sets, array, struct, intertools, locale, ge ttext.
2. Siklni qayta ishlashni qo`llab -quvvatlovchi. Modullar: pdb, hotshot, profile,
unittest, pydoc. Paketlar: docutils, distutils.
3. OS (fayllar, protseslar) bilan ishlash. Modullar: os, os.path, getopt, glob, popen2,
shutil, select, signal, stat, tempfile.
4. Matnlarni qayta ishlovchi. Modullar: string, re, StringIO, codecs, difflib, mmap,
sgmllib, htmllib, htmlentitydefs. Paket: xml.
5. Ko`p oqimli hisoblashlar. Modullar: threading, thread, Queque.
6. Ma’lumotlarni saqlash. Arxivlash. Modullar: pickle, she lve, anydbm, gdbm,
gzip, zlib, zipfile, bz2, csv, tarfile.
7. Platformaga tobe modullar. UNIX uchun: commands, pwd, grp, fcntl, resource,
termios, readline, rlcompleter. Windows uchun: msvcrt, _winreg, winsound.
8. Tarmoqni qo`llab -quvvatlash. Internet protokoll ari. Modullar: cgi, Cookie, urllib,
urlparse, htttplib, smtplib, poplib, telnetlib, socket, asyncore. Serverlarga misollar:
SocketServer, BaseHTTPServer, xmlrpclib, asynchat.
9. Internetni qo`llab -quvvatlash. Ma’lumotlar formatlari. Modullar: quopri, uu,
base 64, binhex, binascii, rfc822, mimetools, MimeWriter, multifile, mailbox. Paket:
email.
10. Python uchun. Modullar: parser, symbol, token, keyword, incpect, tokenize,
pyclbr, py_compile, compileall, dis, compiler.
11. Grafik interfeys. Modul: Tkinter.
Ko`pincha m odullar o`zida bir yoki bir nechta sinflarni saqlaydilar. Bu sinflar
yordamida kerakli tipdagi obye kt yaratila di , lekin gap moduldagi nomlar haqida
emas, aksincha shu obtekt atributi haqida boradi. Bir nechta modullar faqat erkin
obyetlar ustida ishlash uchun umumiy bo`lgan funksiyalardan iborat bo`ladilar.
Sys moduli](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_60.png)
![61
Sys moduli Python interpretatorida dasturni bajaruvchi muhitdir. Quyida bu
modulni eng ko`p qo`llaniladigan obyektla ri keltilgan:
Exit([c]) - dasturdan chiqish. Tugatishning raqamli kodini yuborish mumkin: agarda
dasturni tugatish muvafaqqiyatli amalga oshsa 0 ni yuboradi, aksincha bo`lsa ya’ni
xatolik yuz bersa boshqa raqamlarni yuboradi.
Argv - buyruqlar qatori argumentlari ro`yxati . Oddiy holatda sys.argv[0] buyruqlar
qatoriga ishga tushirilgan dastur nomini va boshqa parametrlar yuboriladi.
Platform - interpretator ishlaydigan platforma.
Stdin, stdout, stderr - standart kiritish, chiqarish, xalolarni chiqarish. Ochiq faylli
obyektlar.
Version - interpretator versiyasi.
Serecursionlimit(limit) - rekursiv chaqirishlarni maksimal kiritish darajasini
o`rnatadi.
Exc_info() -kiritish -chiqarish istisnosi haqida ma’lumot.
Copy moduli
Bu modul obyektlarni nusxalashga mo`ljallangan funksiyalarga ega. Boshida
Pyhtonda sal sarosimaga solish uchun “paradoks” ni ko`rib chiqish tavsiya etiladi.
lst1 = [0, 0, 0]
lst = [lst1] * 3
print(lst)
lst[0][1] = 1
print (lst)
Va biz kutmagan natija paydo bo`ladi:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 1, 0], [0, 1, 0], [0, 1, 0]]
Gap shundaki bu yerda lst ro`yxati shu ro`yxatnining izohiga ega. Agarda rostdan
ham ro`yxatni ko`paytirmoqchi bo`lsak, copy modulidagi copy() funksiyasini
qo`llash kerak.
from copy import copy
lst1 = [0, 0, 0]
lst = [copy(lst1) for i in range(3)]](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_61.png)
![62
print (lst)
lst[0][1] = 1
print (lst)
Endi kutilgan natija paydo bo`ladi:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 1, 0], [0, 0, 0], [0, 0, 0]]
Copy modulida yuqori aniqalikda nusxalash uchun deepcopy () funksiyasi bor bu
funksiya yordamida obektlar butun imkoniyati bilan rekursiv nusxalanadi .
2.4.Math, cmath , random va os moduli.
Math va cmath modullar ida haqiqiy va compleksli argumentlar uchun
matematik funksiyalar to`plangan. Bu C tilida foydalaniladigan funksiyalar. Quyida
math modulining funksiyalari keltirilgan. Qayerda z harfi bilan argumentga
belgilash kiritilgan bo`lsa, u cmath modulidagi analogik funksiya ham shunday
belgilanishini bildiradi.
Acos(z) -arkkosinus z.
Asin(z) - arksinus z.
Atan(z) - arktangens z.
Atan2(y, x) - atan(y/x).
Ceil(x) - x ga teng yoki katta eng kichik butun son.
Cos(z) - kosinus z .
Cosh(x) - giperbolik x kosinusi.
e- e konstantasi.
Exp(z) - eksponenta (bu degani e**z)
Fabs(x) -x absolute raqami.
Floor(x) - xga teng yoki kichik eng katta butun son
Fmod(x,y) - x ni y ga bo`lga ndagi qoldiq qism.
Frexp(x) - mantisa va tartibni (m, i) juftligi kabi qaytaradi, m - o`zgaruvchan nuqtali
son, i esa - x=m*2**i ga teng butun son bo`ladi. Agarda 0 -(0,0) qaytarsa boshqa
paytda 0.5<=abs(m)<1.0 bo`ladi.
Factorial(x) - x ning faktoriali. N!=1*2*3*…*n
Hypot(x,y) - sqrt(x*x+y*y)](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_62.png)
![63
Ldexp(m,i) - m*(2**i).
Log(z) - natural logarifm z.
Log10(z) - o`nlik logarifm z.
Log2(z) -logarifm ikki asosga ko`ra z.
Modf(x) - (y,q) juftlikda x ning butun va kasr qismini qaytaradi.
p-pi konstantasi.
Pow(x,y) - x**y .
Sin(z) - z ning sinusi.
Sinh(z) - z ning giperbolik sinusi.
Sqrt(z) - z ning kvadrat ildizi.
Tan(z) - z ning tangensi.
Tanh(z) - z ning giperbolik tangensi.
Trunc(x) - x haqiqiy sonning butun qismini qaytaradi .
degrees (x)-x ni radiandan gradusga o`tkazish.
radians(x) - x ni gradusdan radianga o`tkazish.
Random moduli
Bu modul har xil taqsimotlar uchun tasodifiy raqamlarni generatsiya qiladi.
Eng ko`p qo`llaniladigan funksiyalari:
Random() -[0.0, 1.0) yarim ochiq diapozondagi tasodifiy sonlarni generatsiya qiladi.
Choice(s) - s ketma - ketlikdan tasodifiy elementni tanlab oladi.
Shuffle(s) - s o`zgaruvchan ketma -ketlik elementlarini joyiga joylashtiradi.
Randrange([start], stop, [step]) - renge(start, stop, step) diapozondagi tasodifiy
butun raqamni chiqaradi. Choice(range(start, stop, step)) ga analogik holatda.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_63.png)
![64
Normalvariate(mu, sigma) - normal holatda taqsimlangan ketma -ketlikdan
raqamni chiqaradi. Bu yerda mu - o`rtacha, sigma -o`rta kvad ratli (sigma>0) sonlar.
Boshqa funksiyalar va uning parametrlarini hujjatlashdan aniqlab olish
mumkin. Modulda qandaydir holatga tasodifiy raqamlar generatorini joylashtirishga
imkon beruvchi seed(n) funksiyasi ham mavjud. Masalan: agarda bitta tasodifiy
raqamlar ketma -ketligidan ko`p marta foydalanishga ehtiyoj sezilsa.
Time va Sets moduli
Time modul i joriy vaqtni olish uchun va vaqt formatlarini o`zgartirish uchun
fuksiyalarni taqdim etadi.
Sets modul i to`p lam lar uchun ko`rsaatgichlar tipini amalga oshiradi.
Quyidagi misol bu moduldan qanday foydalanish mumkinligini ko`rsatadi. Su
o`rinda bilishimiz kerakki, Python 2.4 va undan yuqori versiyalarda set tipi sets
o`rniga kiritilgan.
import sets
A = sets.Set([1, 2, 3])
B = sets.Set([2, 3, 4])
print (A | B, A & B, A - B, A ^ B)
for i in A:
if I in B: print (i,)
Natijada:
Set([1, 2, 3, 4]) Set([2, 3]) Set([1]) Set([1, 4])
2 3
Array va struct modullari
Bu modullar past darajali massiv va korsatgichlar tuzilmasini amalgam oshiradi.
Ularning asosiy vazifasi - ko`rsatgichlarning ikkilamchi formatlarini ko`rib chiqish.
Os moduli
Os moduli -har xil operatsion sistemalarning o`ziga xos xususiya tlari bilan
ishlovchi kategoriyadagi asosiy modul hisoblanadi. Bu modul funksiyalari ko`plab
operatsion sistemalarda ishlaydilar. Kataloglarni bo`luvchi os moduli va u bilan
bog`liq bo`lgan ifodalar konstanta ko`rinishida berilgan.
K onstanta V azifasi
Os.curdir Joriy katalog](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_64.png)
![65
Os.pardir Bosh katalog
Os.sep Yo`lning elementlari ni taqsimlovchi
Os.altsep Boshqa yo`lning elementlarini
taqsimlovchi
Os.pathsep Yo`llar ro`yxatidagi yo`llarni
taqsimlovchi
Os.defpath Yashirin yo`llar ro`yxati
Os.linesep Satrni yakunlovchi belgi
2.4.1 -chizma. Kataloglarni bo`luvchi os moduli ifodalari konstanta ko`rinishida
Pythondagi dastur operatsion tizimda alohida jarayon ko`rinishida ishlaydi.
Os modulining funksiyalari protsesda, muhitda bajariladigan turli xildagi
ahamiyatga ega bo`lgan kirishlarga ruxsat etadilar. Os modulining eng mu him ruxsat
etuvchi obyektlaridan biri deb environ o`rab oluvchi muhiti o`zgaruvchilarning
lug`ati hisoblanadi. Masalan o`rab oluvchi muhit o`zgaruvchilar yordamida web
server CGI -ssenariyga bir qancha parametrlarni o`tkazadi. Quyidagi misolda PATH
o`rab ol uvchi muhiti o`zgaruvchini olish mumkin:
import os
PATH=os.environ[‘PATH’]
Funksiyalarning katta qismi fayllar va kataloglar bilan ishlashga
mo`ljallangan. Quyida UNIX va Windows OT lar uchun ruxsat etilgan funksiyalar
taqdim etilgan:
Access(path, flags) - path nomli fayl yoki catalog ruxsat etish( доступь ) ni
tekshiradi. Buyurma qilishga rucsatning tartibi flags raqami bilan belgilanadi. U esa
yaratilgan kombinatsiyalar os.F_OK (fayl mavjud), os.R_OK (fayldan o`qish
mumkin), os.W_OK ( faylga yozish mumkin ) va os.X_OK (fayllarni bajarishni,
katalogni ko`rib chiqish mumkin) bayroqlari bilan belgilash mumkin.
Chdir(path) - path ni joriy ishchi katalog qiladi.
Getcwd() - joriy ishchi catalog.
Chmod(path, mode) - mode ga path bo`lgan ruxsat etish rejimini belgilayd i. Ruxsat
etish tartibi bayroqlarni kombinatsiya qilib belgilashi mumkin. Bu ishda chmod()](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_65.png)
![66
harakatda bo`lgan tartibni to`ldirmaydi, uni y angidan belgilamaydi, uni yangidan
belgilaydi.
Listdir(dir) - dir katalogidagi fayllar ro`yxatini qaytaradi. Ro`yxatga m axsus
belgilar “.” va “..” kirmaydi.
Mkdir(path [, mode]) - path katalogini tuzadi. Jimlik holatida mode tartibi 0777 ga
teng bo`ladi, bu degani S_IRWXU|S_IRWXG|S_IRWXO agarda stat moduli
konstantalari bilan foydalansak.
import os
os .mkdir (‘C: \Users \Guljakhon \Desktop \Новая папка \katalog \dir2’)
#ko`rsatilgan manzilda dir2 nomli yangi katalog yaratadi.
import os
os .mkdir ('./dir2' )
#joriy manzilda dir2 nomli yangi catalog yaratadi.
Makedirs(path [,mode]) - hamma kataloglarni yaratuvchi, agarda ular mavjud
bo`lmasalar mkdir() analogi oxirgi katalog mavjud bo`lgandan so`ng mustasnoni
ishga tushiradi.
Remove(path), unlink(path) - path katalogini yo`qotadi. Kataloglarni yo`qotish
uchun rmdir() va removedirs() dan foydalanadi.
Rmdir(path) - path nomli bo`sh katalogni yo`qotadi.
Removedirs(path) - birinchi bo`sh bo`lgan kataloggacha pathni yo`q qiladi. Agarda
yo`lda eng oxirgi kiritilgan katalog osti bo`sh bo`lmasa OSError mustasnosini ishga
tushiradi.
Rename(src, dst) - src fayli yoki katallogini dst deb qayta nomlaydi.
Renames(src, dst) - rename() analogi dst yo`li uchun kerakli kataloglarni yaratadi
va src yo`lining bo`sh kataloglarini yo`qotadi.
Stat(path) - path haqidagi malumotni o`nta elementlik kortej shaklida qaytaradi.
Kortej elementlariga kirish u chun stat moduli konstantalaridan foydalanish mumkin.
Masalan stat.ST_MTIME (faylning oxirgi modifikatsiyasi vaqti).
Utime(path, times) - oxirgi modifikatsiya (mtime) va faylga kirishga ruxsat(atime)
larini belgilaydi. Boshqa holatlarda times ikki elementli kortej (atime, mtime)
sifatida ko`rib chiqiladi. Qaysidir faylni atime va mtime ni olish uchun stat() va stat
modulining konstantalarini barobar ishga tushirib olish mumkin.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_66.png)
![67
Os moduli protsesslar bilan ishlash uchun quyidagi funksiyalarni taqdim etadi
(u lar ham UNIX hamda windowsda ishlaydilar).
System(cmd) - alohida oynada cmd buyruqlar satrini bajaradi. U C tilining system
kutubxonasi chqirig`iga analogik bo`ladi. Qaytarilgan qiymat foydalanadigan
platformadan tobe bo`ladi.
Times() - beshta elementdan iborat bo`lgan kortejni qaytaradi. U ish jarayoni vaqtini
lahzalarda ko`rsatadi, qo`shimcha protsesslar vaqtini, qo`shimcha protsesslarning
axborot tizimlari vaqtini, va o`tgan zamonda qotib qolgan vaqtni ko`rsatadi (masalan
tizim ishga tushgan paytdan).
Getloadavg() - coo, uchta qiymatlik kortejni qaytaradi.
II bob bo’yicha xulosa.
Bit iruv malakaviy ishining 2 -bobi “Pythonda ma’lumotlar tuzilmasi va tilning
standart modullari” deb atalib bunda ro`yxat, kortej, lug`at va to`plam tushunchal ari
va ularni qanday yaratish mumkinligi ular ustida amallar bajarish haqida
ma’lumotlar keltirilib misollar yordamida tushuntirilgan. Shuningdek, bu bobda
modul tushunchasi, Python dasturining jud a boy kutubxonaga ega ekanligi haqidagi
ma’lumotlar berilga n bo`lib, ko`plab modu llar shu jumladan sys, copy, time, math,
cmath, random, os modullari ularning funksiyalari va qo`llanilishi haqida yozilib,
mi sollar keltirish yordamida tushuntirilgan.
Ushbu bobda talabalar o’z ustlarida mustaqil ishlashlari va Python dasturida
ishlash bo`yicha bilim saviyalarini oshirish uchun standar t modullardan
foydalanishlari taklif etilgan.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_67.png)
![68
XOTIMA
Mazkur metodik qo`llanmada Python dasturlash tilining yaratilish tarixi,
imkoniyatlari va Python dasturlash tilini Win dows operatsion tizimida o`rnatish
haqida yozilgan . Python dasturida ishlaydigan foydalanuvchilar uchun uning
sintaksisi, asosiy operatorlari, fayllar, funksiyalar bilan ishlash sanoq sistemalari va
satrlar bilan ishlash haqida muhim zaruriy ma’ lumotlar keltirilgan. Qo`llanmani
o`qigan har bir qiziquvchi Python dasturini o `rnatish boshqa odatiy dasturlarni
o`rnatish kabi hech qanday qiyinchiliksiz o`rnatilishini, tilning sintaksisi o`zi kabi
sod da va oson ekanligini, o`zgaruvchilarning tipini e’lon qilinm asligini, shuningdek
sonlar bilan ishlaganda nafaqat butun va haqiqiy sonlar ustida balki kompleks sonlar
ustida ham amallar bajarishni ko`rsatilgan misollar yordamida o`rgana oladi va uni
amaliyotda bajara oladi. Satrlar bilan ishlash va ular ustida amall ar bajarish haqida
ham yetarlicha ma’lumotlar keltirilgan.
Ushbu da yana ro`yxat, kortej, lug`at va to`plam tushunchalari va ularni
qanday yaratish mumkinligi ular ustida amallar bajarish haqida ma’lumotlar
keltirilib misollar yordamida tushu ntirilgan. Shu ningdek, modul tushunchasi,
Python dasturining jud a boy kutubxonaga ega ekanligi haqidagi ma’lumotlar
berilgan bo`lib, ko`plab modullar shu jumladan sys, copy, time, math, cmath,
random, os modullari ularning funksiyalari va qo`llanilishi haqida yozilib, misollar
keltirish yordamida amaliyotda qo`llab tushuntirilgan. O`quvchilar o’z ust ilarida
mustaqil ishlashlari va Python dasturida ishlash bo`yicha bilim saviyalarini oshirish
uchun standar t modullardan foydalanishlari taklif etilgan. Python dasturlash ti lining
afzallik tomonlari tushuntirib berildi va shular asosida o’zbek tilida uslubiy
qo’llanma yaratildi.](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_68.png)
![69
A dabiyotlar
1. Karimov I. A. Barkamol avlod orzusi //Nashr uchun mas`ul T. Risqiyev. -T.:
“Sharq ” nashriyoti — matbaa konserni, 1999. -184 b.
“Kadrlar tayyorlash Milliy dasturi” // Barkamol avlod - O`zbekiston
taraqqiyotining poydevori. -T.: “Sharq ” nashriyoti — matbaa konserni, 1997. –
3. Дмитрий Мусин. Самоучитель Python . 2015 г
4. К.Ю. Поляков, В.М. Гуровиц . Язык Pytho n в школьном курсе
информатики – М.: Издательский дом МЭИ, 2011. – 424.
5. Г.Россум , Ф .Л.Дж .Дрейк , Д.С.Откидач . Язык программирования Python
6. К.Ю. Поляков, Е.А. Еремин. Информатика, 10 класс .
7. Марк Лутц. Программирование на Python . 1995 г.
8. Девид Бизли. Python -Санкт -Петербург: МЭИ, 2008. – Часть III .
9. Сергей Лебедев . Модули и пакеты
10. Прохоренок Н.А. Python.Самое необходимое. – Санкт -Петербург:
БХВ -Петербург, 2011, –416 с.
Internet manbalari manzili
11. www.python.org
12. www.uhlib.ru
13. ww.dasturchi.uz](/data/documents/c15f8d10-6cee-4c29-8693-66775a2d4117/page_69.png)
O’ZBEKISTON RESPUBLIKASI OLIY VA O’RTA TA’LIM VAZIRLIGI BUXORO DAVLAT UNIVERSITETI Fizika -matematika fakulteti “Axborot texnologiyalari” kafedrasi Toshboyeva Guljahon O`tkir qizi “PYTHON DASTURLASH TILI VA UNING IMKONIYATLARI BO`YICHA USLUBIY QO`LLANMA” “Kasb ta’limi:Informatika va axborot texnologiyalari” ta’lim yo’nalishi bo’yicha bakalavr darajasini olish uchun BITIRUV MALAKAVIY ISHI “Ish ko’rildi va himoyaga ruxsat Ilmiy rahbar_____H.Sh.Rustamov berildi” «___» ______________2017y. Kafedra mudiri Taqrizchi____ ______dots.T.B.Boltayev «___» ______________2017 y. «___» ______________2017 y. «Himoya qilishga ruxsat berildi » Fakutet dekani prof.Sh.M.Mirzayev «___» ______________2017 y. Buxoro -2017
2 MUNDARIJA Kirish ……………………………………………………………………….. 3 I BOB. Python dasturlash tili va uning sintaksisi . 1.1. Python dasturlash tili yaratilish tarixi, imkoniyatlari va uni o`rnatish ….. 6 1.2.Python tili sintaksisi, asosiy operatorlari.. …………………………….... 12 1.3.Funksiya, fayllar bilan ishlash, sanoq sistemasi va son... ……………… 18 1.4.Satrlar bilan ishlash ………………………………… ……….. ………… 28 II BOB. Pythonda ma’lumotlar tuzilmasi va tilning standart modullari 2.1.Ro`yxat va kortej……. ………………………………………………… 33 2.2.Lug`atlar va to`plamlar bilan ishlash.. ………………………………….. 48 2.3. Modul tushunchasi, standart kutubxonalar, sys va copy moduli ……….. 55 2.4.Math, cmath, random va os moduli…………….. ……………………... 60 Xotima ……………………………………………………………………. 62 Adabiyotlar ……………………………………………………………… 63
3 K irish “ Dunyoda ilmdan boshqa najot yo`q va bo`lmagay. ” Imom Al -Buxoriy. O‘zbekistonda ijtimoiy -iqtisodiy sohada, shu jumladan axborot - kommunikatsiya texnologiyalari, zamonaviy axborotlashgan jamiyatni shakllantirish borasida ken g ko‘lamli islohotlar izchillik bilan va aniq maqsadni ko‘zlab amalga oshirilmoqda. Zamonaviy kadrlarni yetishtirish borasida respublikamiz ta‘lim tizimida tub o’zgarishlar amalga oshirilmoqda. Bunga sabab, «Ta‘lim to’g’risida»gi qonun va «Кadrlar tayyorlash milliy dasturi»ning qabul qilinishi va ularda ilmiy -texnika taraqqiyoti yutuqlarini ishlab chiqarish va xizmat ko`rsatish sohasiga tadbiq qilish, ijtimoiy -iqtisodiy rivojlanish bilan uzviy bog’liq еkanl igining aniq ko’rsatilishidir. Hozirgi kun da ta’lim -tarbiya jarayoniga zamonaviy axborot texnologiyalarini joriy etish, ta’limni kompyuterlashtirish muammolarini hal qilish muhim ahamiyat kasb etadi. O’zbekiston Respublikasi mustaqillik odimlarini dadil qo’yayotgan hozirgi davrda axborotlashgan ja miyat qurish masalasi mamlakatimiz uchun naqadar katta ahamiyat kasb etayotgani hech kimga sir emas. Internet hayotimizning bir bo’lagiga aylandi, biz uning xizmatlaridan har kuni foydalanishga odatlandik. Respublikamizda o’qitish texnologiyalarini zamonav iylashtirishni jadllashtirish rivojlangan iqtisodiyotli mamlakatlarga qaraganda yanada dolzarb ahamiyatga ega. Chunki hozirgi kunda milliy ta’lim tizimining salohiyati iqtisodiy rivojlanishning yanada yuqori pog’onasiga ko’tarilishga amaliy imkoniyat ta’mi nlovchi asosiy ijtimoiy resurs sifatida gavdalanadi. Respublikamiz ta’lim tizimidagi asosiy vazifa jahon talablariga mos keluvchi axborot texnologiyalarini o’qitish jarayoniga qo’llashdan iborat. O’zbekistonda ta’lim tizimining axborotlashtirilishi xalqaro hamjamiyatda ham tan olindi. Masofaviy ta’limni rivojlantirish bo’yicha bir qator dasturlar ishlab chiqilmoqda. Iqtisodiyot va jamiyatda islohotlarning o’tkazilishi natijasida o’quv jarayonining zahira hajmini keskin oshirish bo’yicha yangi talablar qo’yi ldi. Hozirgi kunda
4 axborot eng asosiy ishlab chiqaruvchi resurslardan biriga, iqtisodiyot va umuman jamiyatning rivojlanish poydevoriga aylanmoqda. Yangi axborot - kommunikatsion texnologiyalar hozirgi kunda eng dolzarb mavzulardan biri bo’lib kelmoqda, sa babi har bir sohani o’rganish, izlanish va tajriba orrtirish uchun turli usullardan foydalanish kerak bo’ladi. Shuning uchun yangi axborot kommunikatsion texnologiyalardan foydalanish maqsadga muvofiqdir. Respublikamizda olib borilayotgan islohotlarning tarkibida yuqori malakali mutaxasislarning roli benihoya kattadir. Birinchi Prezidentimiz ta’kidlaganidek, ”Ertangi kun yangicha fikrlay oladigan zamonaviy bilimga ega bo’lgan yuksak malakali mutaxasislarni talab etadi”. Shu sababli xalqimizning boy intellektual merosi va umumbashariy qadriyatlari, zamonaviy madaniyat, iqtisodiyot, fan, texnika va texnologiyalar asosida yuksak mutaxasislar tayyorlash tizimi ishlab chiqildi va jadal sur’atlar bilan hayotga tad biq etilmoqda. O’zbekistonda o’qitish texnologiyalarini zamonaviylashtirish, jadallashtirish rivojlangan iqtisodiyotli mamlakatlarga qaraganda yanada dolzarb ahamiyatga ega. Chunki hozirgi kunda milliy ta’lim tizimining salohiyatli tizimli rivojlanishi yan ada yuqori pog’onaga ko’tarildi. Bitiruv malakaviy ish mavzu sining dolzarbligi: mavzuning dolzarbligi shundan iboratki , Python bu umumiy maqsadli dasturlash uchun keng tarzda foydalaniladi gan yuqori darajali dasturlash tili, chunki o'rganish oson va qulay sintaksisga ega. Undan tashqari skriptli dasturlash tillariga kiradi. Python dinamik tipizatsiyaga ega, obyektga yo'naltirilgan dasturlash, funksional dasturlash, strukturali, avtomatik xo tirani boshqarish va albatta ko'p patokli dasturlash tillaridan biri. Python har xil platformalar uchun yozilgan masalan Windows, Linux, Mac OS X, Palm OS, Mac OS va hokazo. Python Microsoft.NET platformasi uchun yozilgan realizatsiyasi ham bor uni nomi IronPython. Bugungi kunda dunyoga mashhur ko`plab kompaniyalar NASA, Google, Yandex, CERN, Apple computer, Dream Works, kosmik teleskop institutlari Pythonni ishlatishadi. Dunyoni ng rivojlangan mamlakatlari AQSH (Koliforniya Universiteti, Florida Universiteti, Lova Universiteti, Massachustva Texnologiya Universiteti ), Kanada (Toronto Universiteti, Alberto Universiteti), Buy uk Britaniya (Oksford Universiteti),
5 Fransiya, Rossiya, Avstraliya, Ispaniyaning universitet va kollejlarida o`qitishda Python dasturlash tili qo`llaniladi. Pythonning o`ziga xos jihatlaridan biri bu dasturni yozish davomida quyi darajadagi detallarni, mi sol uchun xotirani boshqarishni hisobga olishga hojat qolmaydi. Shuningdek dasturni yozish davomida ortiqcha kod yozishdan xalos bo`linadi. Masalan: massiv elementlarini tartiblash misolini Paskal va Python dasturi dagi talqinini taqqoslab solishtirib ko`ra ylik. Shu bilan birga Pythonda dastur yozayotganda begin -end, {} yoki satr tugagani bildirish uchun nuqtali vergul (;) qo`yilmaydi. Tadqiqot ob'yеkti va prеdmеti: Python dasturlash tili. Dasturiy ta’minotlar bilan jihozlangan kompyuter xonalari . Python dasturlash tilida dastur tuzish uchun WingWare , Paycharm, Paydev, Notepad++ va boshqa muhitlari . Dasturlar ni tuzishda va muhitlar bilan ishlashda kompyuter texnologiyalari, shu bilan birgalikda eng zamonaviy usullardan foydalanish. Biz tadqiqot obyekti sifatida Wingware muhitida ishlab dastur natijalarini olishga harakat qildik. Ishning maqsadi va vazifalari: Python dastulash tili h aqida uslubiy qo`llanma yaratish . Python dasturini o`rnatish, uning sintaksisini, opera tor va funksiyalarini o`rganish, arifmetik amallarni bajarishni, sonlar, satrlar bilan ishlashni hamda ulard an foydalanib masalalar yechishni o`rganish. Masalalarr yechimini to`griligini kompyuterga WingWare muhitiga kiritib tekshirib ko`rish. Python tilining imkoniyatlarini ko`rish, uni bugungi kundagi qanday loyihalarni tuzishda ishlatilishini o`rganish . Talabalar mustaqil shug’ullanishlari uchun uslubi y qo’llanma ko’rinishida tayyorlash. Talabalarga kompyuterda mustaqil masala yechish usullarini ko’rsatish va talabalarni dasturlashga bo’lgan qiziqishlarini oshirish. A.sort() For i:= 0 to N-1 do For j:=N -2 downto i do If A[j] > A[j+1] then begin c:=A[j]; A[j]:=A[j+1]; A[j+1]:=c end;