Dinamik tiplashtirilgan



Download 2,16 Mb.
bet38/56
Sana09.03.2022
Hajmi2,16 Mb.
#487710
1   ...   34   35   36   37   38   39   40   41   ...   56
Bog'liq
Ataxonov maruza

8. Fayllarni arxivlash va arxivini ochish. Katta sondagi fayllar bilan ishlaganda, ularni arxivlashga ehtiyoj tug’ilishi mumkin. Dasturchilarga arixivlash imkoniyatini zipfile modulidagi ZipFile() funktsiyasi taqdim etadi va bunda faylli zip ob`ekti yaratiladi.


from zipfile import ZipFile
from glob import glob
# Joriy papkadagi barcha .py fayllarining zip-fayli yaratiladi
files = list(glob('f*.py'))
with ZipFile('py_files.zip', 'w') as file:
for py_fayl in files:
print("*Arxivga {py_fayl.name} fayli qo'shildi")
file.write(py_fayl)
Aytaylik, tashqi manbadan zip-fayl berilgan va uni joriy papkada ochish talab qilingan bo`lsin. Agar undagi fayl nomi hamda joriy papkadagi fayl nomi bir bo`lib qolsa, uni qayta yozish haqida ko`rsatma zarur bo`ladi. Shuning uchun, arxiv fayllarini alohida papkada ochish maqsadga muvofiq bo`ladi.
from zipfile import ZipFile
with ZipFile('py_files.zip') as zip_file:
zip_file.printdir()
zip_file.extractall()

To`plamlar va ular ustida amallar bajarish

Python tilida to`plam – bu betakror elementlarning tartiblanmagan jamg’armasidan iborat bo`ladi. Tartiblanmaganlik shuni anglatadiki, to`plam uchun elementning turgan o`rni hech qanday ahamiyat kasb etmaydi. Betakrorlik esa to`plamda ikkita bir xil elementning mavjud bo`lmasligini bildiradi. Bu holda bir xil elementlar bitta deb qaraladi. To`plam elementlar quyidagi hususiyatlarga ega bo`lishi lozim:


betakror;
o`zgarmas ob`ektlar;
turli tiplarga mansub bo`lishi mumkin.
Python tilida to`plamlar ma`lumotlarning alohida turi sifatida qaraladi hamda ular ustida matematikaning to`plamlar nazariyasiga hos bo`lgan barcha amallarni bajarish imkoniyatlari ko`zda tutilgan. To`plamlar bo`sh bo`lishi ham mumkin. Masalan:
{'a', 5, "kitob"} # uch elementli to`plam;
{0, 1, 2, 3, 4, 5} # 5 ta elementli to`plam;
{ } # bo`sh to`plam.
Biror elementning u yoki bu to`plamga munosabati tegishli yoki tegishli emasligi bilan ifodalanadi. Uning to`plamda turgan o`rnining ahamiyati yo`q.
To`plam” tipidagi ob`ektlarni yaratish.
“To`plam” tipidagi ob`ektlarni quyidagi usullardan biri yordamida yaratish mumkin:
• to`plam ob`ektiga {} lar orasida elementlarini ko`rsatib o`zlashtirish. Masalan:
x = { 0, 1, 0, 'a', 1, 'b', 2 } # x = {0, 1, 2, 'a', 'b'} – elementlar betakror
• boshqa tipdagi ma`lumotlarni to`plamga akslantirish imkonini beruvchi set() funktsiyasi qaytargan qiymatlarni to`plam ob`ektiga o`zlashtirish. Masalan:
x = set(['a', 5, "textbook", 5]) # x = {5, 'kitob', 'a'}.
• to`plam ob`ektiga to`plam ustida bajarilgan qandaydir amal natijalarini o`zlashtirish (masalan, kesishma amali - &). Masalan:
x = { 1, 2, 3, 4 } & { 3, 2} # x = {2, 3}
• to`plam ob`ektiga frozenset() funktsiyasi natijalarini o`zlashtirish. Masalan:
x = frozenset([1, 2, 3, 4]) # x – o`zgarmas to`plam.
• to`plam ob`ektiga to`plamlarni qaytaruvchi funktsiya natijalarini o`zlashtirish. Masalan:
x = { 1, 2, 3, 4 }
y = { 3, 5, 7 }
z = x.union(y) # z = { 1, 2, 3, 4, 5, 7 }.
Usullar turlicha bo`lishiga qaramay, set() funktsiyasi asosiy usul sifatida qaraladi. Uni amalda qo`llashga doir quyidagi namunaga e`tibor bering.
A={1, 30, "text", True, 30, 100, False}
B=set(A)
print("V to’plam: ",B)
print(A==B)

Natijadagi 30 elementining yo`q bo`lganligi tushunarli, ammo 1 elementi qani? Gap shundaki, Python tilida mantiqiy True qiymati 1 butun son tarzida talqin qilinadi. B to`plamda A ning elementlari tartibining o`zgarishi hech narsani hal qilmaydi.
A va B to`plamlari teng deyiladi, agar A ning hamma elementlari B da, B ning hamma elementlari A to`plamda mavjud bo`lsa. SHu sababli, yuqoridagi kodda ularni taqqoslash natijasi – True bo`lgan.
Ko`rsatilgan elementni to`plamga kirish-kirmasligi in operatori yordamida aniqlanadi. Agar element to`plamga kirsa-true, aks holda-False.
A={1, 30, "text", True, 30, 100, False}
print(0 in A)

Kod natijasini tahlil qilish uchun yuqoridagi misolning izoxiga qarang.
To`plam ustida bajarish mumkin bo`lgan ayrim amallarni ko`rib chiqaylik. To`plamdagi elementlar sonini len() funktsiyasi yordamida topiladi. To`plam nushasini yaratish uchun esa soru() metodidan foydalanish mumkin. O`zlashtirish operatori yordamida to`plam nushasini yaratilganda, ya`ni bir o`zgaruvchi ko`rsatib turgan to`plamni ikkinchi o`zgaruvchiga qiymat qilib berilganda, ikkita o`zgaruvchi hosil bo`lib, ularning har ikkisi bitta to`plamni (xotira qismini) ko`rsatadi. Bir nechta o`zgaruvchining bitta to`plamni ko`rsatishini is operatori yordamida aniqlash mumkin.
A={1, 2, 3, 4, 5, 6, 7, 1, 3}
print("To'plamdagi elementlar soni=", len(A))
B=A.copy()
print("B to'plam elementlari: ",B)
print(A is B)

To`plamga yangi elementlarni qo`shishi uchun add() metodidan foydalaniladi. Bu metodning argumenti to`plamga qo`shiladigan elementni anglatadi.
To`plam elementlarini o`chirish uchun remove() yoki discard() metodlari xizmat qiladi. Bu metodlar to`plamdan chaqiriladi va o`chiriladigan element argument sifatida uzatiladi. rerove() metodi qo`llanganda istisnoli vaziyat yuzaga keladi, discard() da esa - yo`q. U shunchaki hech qanday amal bajarmaydi. To`plam elementlari to`la o`chirish uchun clear() metodidan foydalaniladi.
A={1, 2, 3, 4, 5, 7}
A.add(6)
print("A to'plamga 6 qo'shildi: ", A)
A.remove(3)
print("A to'plamdan 3 o'chirirldi:", A)

Ikki to’plam o’rtasidagi munosabatlarni aniqlashda quyidagi amal yoki metodlardan foyadalanish mumkin.


Download 2,16 Mb.

Do'stlaringiz bilan baham:
1   ...   34   35   36   37   38   39   40   41   ...   56




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish