Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

12-ameliy Python

.pdf
Скачиваний:
1
Добавлен:
25.10.2024
Размер:
324.05 Кб
Скачать

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.

Соседние файлы в предмете Программирование на Python