
12-ameliy Python
.pdf
12-ámeliy jumıs
Python programmalastırıw tilinde sózlikler (dictionaries) - bul programmalastırıw tiliniń áhmiyetli strukturalarınan biri.
1. Sózlikler haqqında ulıwma túsinik
Sózlik - bul juplıqlar toplamı bolıp, hárbir element gilt-mánilik (key-value) juplıǵınan ibarat. Sózliktiń tiykarǵı ózgeshelikleri:
Gilt unikal bolıwı kerek
Mánilik hár qanday tipte bolıwı múmkin
Sózlikler ózgeriwshi (mutable)
Gilt-mánilik juplıqları tártipsiz saqlanadı
2.Sózlik jaratıw usılları
#1-usıl: Bos sózlik sozlik1 = {}
sozlik2 = dict()
#2-usıl: Mánis berip jaratıw student = {
"atı": "Azamat",
"jası": 20, "kurs": 2
}
#3-usıl: dict() funkciyası járdeminde student2 = dict(atı="Gúlnaz", jası=19, kurs=1)
3. Sózlik penen islewdiń tiykarǵı operaciyaları
# Sózlikke element qosıw student["telefon"] = "+998901234567890"
#Elementti ózgertiw student["jası"] = 21
#Elementti óshiriw del student["telefon"]
#Elementti alıw
jası = student["jası"]
# yamasa
jası = student.get("jası") # get() qáwipsizirek, sebebi gilt tawılmasa None qaytaradı
# Giltlerdi alıw
giltler = student.keys()
# Mánislerdi alıw
manisler = student.values()
# Gilt-mánilik juplıqların alıw juplıqlar = student.items()
4. Ámeliy máseleler

1-másele: Studentler dizimin sózlik járdeminde basqarıw
#Studentler dizimin saqlaw ushın sózlik studentler = {}
#Student qosıw funkciyası
def student_qosıw(id, atı, kurs): studentler[id] = {
"atı": atı,
"kurs": kurs
}
#Student haqqında maǵlıwmat alıw def student_koriw(id):
if id in studentler: return studentler[id]
return "Student tabılmadı"
#Studentti óshiriw
def student_oshiriw(id): if id in studentler:
del studentler[id]
return "Student óshirildi" return "Student tabılmadı"
# Testlew
student_qosıw(1, "Azamat", 2) student_qosıw(2, "Gúlnaz", 1)
print(student_koriw(1)) print(student_koriw(2)) print(student_oshiriw(1))
2-mashqala: Telefon knijkası
telefon_knijka = {}
def kontakt_qosıw(atı, nomer): telefon_knijka[atı] = nomer
def kontakt_izlew(atı):
return telefon_knijka.get(atı, "Kontakt tabılmadı")
def barlıq_kontaktlar():
for atı, nomer in telefon_knijka.items(): print(f"{atı}: {nomer}")
# Testlew
kontakt_qosıw("Azamat", "+998901234567") kontakt_qosıw("Gúlnaz", "+998907654321")
print(kontakt_izlew("Azamat")) print("Barlıq kontaktlar:") barlıq_kontaktlar()
5. Qosımsha metodlar
sozlik = {"a": 1, "b": 2}
# clear() - sózlikti tazalaw sozlik.clear()

#copy() - sózliktiń kóshirmesin jaratıw jan_sozlik = sozlik.copy()
#update() - sózlikti basqa sózlik penen biriktiriw sozlik.update({"c": 3, "d": 4})
#setdefault() - gilt bolmasa, default mánisti qosıw man = sozlik.setdefault("e", 5)
ÁMELIY MÍSALLAR
1. Oqıwshınıń bahaların esaplaw sisteması:
oqıwshı = {
"atı": "Alisher", "klass": 9,
"pánler": {
"matematika": [5, 4, 5, 4], "fizika": [4, 5, 4, 5], "informatika": [5, 5, 5, 4]
}
}
def orta_baha_esaplaw(bahalar):
return sum(bahalar) / len(bahalar)
# Hárbir pán boyınsha orta bahanı esaplaw
for pán, bahalar in oqıwshı["pánler"].items(): orta_baha = orta_baha_esaplaw(bahalar) print(f"{pán}: {orta_baha}")
2. Dúkan tovarlardı basqarıw sisteması:
tovarlar = {
"alma": {"baha": 12000, "muǵdar": 50}, "banan": {"baha": 25000, "muǵdar": 30}, "apelsin": {"baha": 15000, "muǵdar": 40}
}
def tovar_qosıw(atı, baha, muǵdar):
tovarlar[atı] = {"baha": baha, "muǵdar": muǵdar}
def tovar_satıw(atı, muǵdar): if atı in tovarlar:
if tovarlar[atı]["muǵdar"] >= muǵdar: tovarlar[atı]["muǵdar"] -= muǵdar return muǵdar * tovarlar[atı]["baha"]
else:
return "Jetkilikli tovar joq" return "Bunday tovar joq"
# Tovar qosıw tovar_qosıw("nok", 8000, 60)
# Tovar satıw
print(tovar_satıw("alma", 5)) # 60000 qaytaradı print(tovarlar["alma"]["muǵdar"]) # 45 qaytaradı
3. Waqıyalar kalendarı:

kalendar = {}
def waqıya_qosıw(sáne, waqıt, waqıya): if sáne not in kalendar:
kalendar[sáne] = {} kalendar[sáne][waqıt] = waqıya
def kún_waqıyaların_koriw(sáne): if sáne in kalendar:
print(f"\n{sáne} kúngi waqıyalar:")
for waqıt, waqıya in kalendar[sáne].items(): print(f"{waqıt}: {waqıya}")
else:
print("Bul kúnde waqıyalar joq")
# Waqıyalardı qosıw
waqıya_qosıw("2024-10-26", "10:00", "Jumıs jıynalısı") waqıya_qosıw("2024-10-26", "15:30", "Prezentaciya") waqıya_qosıw("2024-10-27", "12:00", "Túslik")
# Waqıyalardı kóriw kún_waqıyaların_koriw("2024-10-26")
4. Kórsetilgen xızmetler esabı:
xızmetler = {
"kompyuter remont": 200000, "virus tazalaw": 100000,
"programa ornatıw": 50000
}
buyırtpalar = []
def buyırtpa_qosıw(klient, xızmet_atı): if xızmet_atı in xızmetler:
buyırtpa = {
"klient": klient,
"xızmet": xızmet_atı,
"baha": xızmetler[xızmet_atı]
}
buyırtpalar.append(buyırtpa) return "Buyırtpa qabıl etildi"
return "Bunday xızmet joq"
def esap_shıǵarıw(klient): ulıwma_summa = 0 klient_buyırtpaları = []
for buyırtpa in buyırtpalar:
if buyırtpa["klient"] == klient: klient_buyırtpaları.append(buyırtpa) ulıwma_summa += buyırtpa["baha"]
if klient_buyırtpaları: print(f"\n{klient}niń buyırtpaları:") for b in klient_buyırtpaları:
print(f"{b['xızmet']}: {b['baha']} sum") print(f"Ulıwma summa: {ulıwma_summa} sum")
else:
print("Buyırtpalar tabılmadı")
# Testlew
buyırtpa_qosıw("Azamat", "kompyuter remont")

buyırtpa_qosıw("Azamat", "virus tazalaw") buyırtpa_qosıw("Gúlnaz", "programa ornatıw")
esap_shıǵarıw("Azamat")
5. Soraw-juwap sisteması:
sorawlar = {
"Python nege arnalǵan?": {
"juwap": "Python - ulıwma maqsetli programmalastırıw tili", "qıyınlıq": "ańsat"
},
"Dictionary degenimiz ne?": {
"juwap": "Dictionary - gilt-mánilik juplıqlarınan ibarat struktura", "qıyınlıq": "orta"
},
"List penen Dictionary arasında qanday ayırma bar?": {
"juwap": "List indeksler menen, al Dictionary giltler menen isleydi",
"qıyınlıq": "qıyın"
}
}
def soraw_beriw(): durıs_juwaplar = 0
for soraw, maǵlıwmat in sorawlar.items(): print(f"\nSoraw ({maǵlıwmat['qıyınlıq']}): {soraw}") juwap = input("Siziń juwabıńız: ")
if juwap.lower() == maǵlıwmat["juwap"].lower(): print("Durıs!")
durıs_juwaplar += 1 else:
print(f"Nátiyjesi: {maǵlıwmat['juwap']}")
print(f"\nSiz {len(sorawlar)} sorawdan {durıs_juwaplar} durıs juwap berdińiz")
# Sistemanı iske túsiriw soraw_beriw()
Bul mısallarda sózliklerdiń hár túrli qollanıw usılların kórsetilgen. Hár bir mısal real máselelerdi sheshiwge arnalǵan hám sózliklerdiń hár qıylı múmkinshiliklerinen paydalanılǵan.
Test
testler = { 1: {
"soraw": "Python tilinde bos sózlik jaratıwdıń durıs variantı
qaysı?",
"variantlar": {
"a": "dict = []", "b": "dict = {}", "c": "dict = ()", "d": "dict = <<>>"
},
"durıs_juwap": "b",
"túsindirme": "Bos sózlik {} járdeminde yamasa dict() funkciyası menen jaratıladı"

}, 2: {
"soraw": "Sózlikte bir gilt neshe ret qaytalanıwı múmkin?", "variantlar": {
"a": "Sheksiz ret", "b": "2 ret",
"c": "3 ret",
"d": "Gilt unikal bolıwı kerek, qaytalanbawı shárt"
},
"durıs_juwap": "d",
"túsindirme": "Sózlikte giltler unikal bolıwı shárt, bir gilt tek bir ret paydalanıladı"
}, 3: {
"soraw": "Sózliktiń mánisi qanday tipte bolıwı múmkin?", "variantlar": {
"a": "Tek sanlı", "b": "Tek tekstli",
"c": "Hár qanday tipte", "d": "Tek spisok"
},
"durıs_juwap": "c",
"túsindirme": "Sózliktiń mánisi hár qanday tipte bolıwı múmkin: san, tekst, spisok, basqa sózlik h.t.b."
}, 4: {
"soraw": "Sózlikten elementti óshiriw ushın qaysı operator qollanıladı?",
"variantlar": {
"a": "remove()", "b": "pop()", "c": "del",
"d": "clear()"
},
"durıs_juwap": "c",
"túsindirme": "del operatorı sózlikten belgili bir elementti óshiriw ushın qollanıladı"
}, 5: {
"soraw": "Sózliktiń barlıq giltlerin alıw ushın qaysı metod qollanıladı?",
"variantlar": { "a": "keys()",
"b": "values()", "c": "items()", "d": "get()"
},
"durıs_juwap": "a",
"túsindirme": "keys() metodı sózliktiń barlıq giltlerin qaytaradı"
}, 6: {
"soraw": "Sózlikte joq giltke múrajat etkenimizde qátelik bolmawı ushın qaysı metodtı qollanıw kerek?",
"variantlar": { "a": "find()", "b": "get()",
"c": "search()", "d": "index()"
},
"durıs_juwap": "b",
"túsindirme": "get() metodı gilt tawılmasa None qaytaradı, qátelik júz bermeydi"
}, 7: {

"soraw": "Sózliktiń elementlerin sanaw ushın qaysı cikl eń qolay?", "variantlar": {
"a": "while", "b": "for in", "c": "do while",
"d": "repeat until"
},
"durıs_juwap": "b",
"túsindirme": "for in cikli sózlik elementlerin sanaw ushın eń qolaylı usılı"
}, 8: {
"soraw": "Sózliktiń barlıq mánislerin alıw ushın qaysı metod qollanıladı?",
"variantlar": { "a": "keys()",
"b": "values()", "c": "items()", "d": "get()"
},
"durıs_juwap": "b",
"túsindirme": "values() metodı sózliktiń barlıq mánislerin qaytaradı"
}, 9: {
"soraw": "Sózlikti tolıq tazalaw ushın qaysı metod qollanıladı?", "variantlar": {
"a": "delete()", "b": "remove()", "c": "clear()", "d": "empty()"
},
"durıs_juwap": "c",
"túsindirme": "clear() metodı sózliktiń barlıq elementlerin óshiredi"
}, 10: {
"soraw": "Eki sózlikti birlestiriw ushın qaysı metod qollanıladı?", "variantlar": {
"a": "merge()", "b": "update()", "c": "append()", "d": "extend()"
},
"durıs_juwap": "b",
"túsindirme": "update() metodı eki sózlikti biriktiriw ushın qollanıladı"
}
}
def test_alıw(): bal = 0
for nomer, test in testler.items(): print(f"\n{nomer}. {test['soraw']}")
for variant, juwap in test['variantlar'].items(): print(f"{variant}) {juwap}")
user_juwap = input("\nJuwabıńızdı kiritiń (a/b/c/d): ").lower()
if user_juwap == test['durıs_juwap']: print("Durıs! ")
bal += 1 else:
print(f"Nátiyjesi: {test['túsindirme']} ")

print(f"\nTest juwmaqlandı!")
print(f"Sizdiń balıńız: {bal} / {len(testler)}") procent = (bal / len(testler)) * 100 print(f"Procent: {procent}%")
#Testti bastawıńız ushın tómendegi qatardı kommentariydan shıǵarıń
#test_alıw()
Bul testlerdi orınlaw ushın programmanı iske túsirip, hár bir sorawǵa a, b, c yamasa d variantların kiritip juwap beriw kerek. Testtiń aqırında ulıwma bal hám procent kórsetiledi.