Dinamik tiplashtirilgan



Download 2,94 Mb.
bet38/77
Sana06.10.2022
Hajmi2,94 Mb.
#851613
1   ...   34   35   36   37   38   39   40   41   ...   77
Bog'liq
Dinamik

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,94 Mb.

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




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