9-ámeliy jumıs: Python programmalastırıw tilinde dizimler

I. Teoriyalıq bólim
1. Dizim (List) túsinigi
• Dizim - bir neshe elementlerdi óz ishine alǵan, tártiplengen hám ózgeriwshi maǵlıwmatlar strukturası
• Python tilinde dizimler [ ] qawsırmalar belgisi menen jaratıladı
• Dizim elementleri 0-den baslanǵan index boyınsha saqlanadı
2. Dizimniń tiykarǵı ózgeshelikleri:
• Dizimde hár túrli tipli elementler bolıwı múmkin (sanlar, tekstler, logikalıq maǵlıwmatlar)
• Dizim ózgeriwshi (mutable) esaplanadı
• Dizimde elementler qaytalanıwı múmkin
• Dizimde elementlerdiń tártibi saqlanadı
3. Dizimler menen islewdiń tiykarǵı operaciyaları:
• Dizim jaratıw
• Elementlerdi qosıw
• Elementlerdi óshiriw
• Elementlerdi ózgertiw
• Dizimdi sortırovkalaw
• Dizimdi kóshiriw
II. Ámeliy bólim
1. Dizim jaratıw hám elementlerge misal:
# Bos dizim
bos_dizim = []

# Sanlar dizimi
sanlar = [1, 2, 3, 4, 5]

# Hár túrli tipli elementler
aralas = [1, "text", True, 3.14]

2. Dizimge element qosıw:
# append() metodi arqalı
sanlar = [1, 2, 3]
sanlar.append(4)  # [1, 2, 3, 4]

# insert() metodi arqalı
sanlar.insert(0, 0)  # [0, 1, 2, 3, 4]

3. Dizimnen element óshiriw:
# remove() metodi arqalı
sanlar = [1, 2, 3, 4, 5]
sanlar.remove(3)  # [1, 2, 4, 5]

# pop() metodi arqalı
sanlar.pop()  # aqırǵı elementti óshiredi

4. Dizimdi sortırovkalaw:
# Ósiwshi tártipte
sanlar = [3, 1, 4, 1, 5, 9, 2]
sanlar.sort()  # [1, 1, 2, 3, 4, 5, 9]

# Kemeyiwshi tártipte
sanlar.sort(reverse=True)  # [9, 5, 4, 3, 2, 1, 1]

5. Dizimdi kóshiriw:
# Tuwrı kóshiriw (durıs emes)
a = [1, 2, 3]
b = a  # b hám a bir dizimge siltelme boladı

# copy() metodi arqalı (durıs)
a = [1, 2, 3]
b = a.copy()  # b jańa dizim boladı

Ámeliy tapsırma:
Tómendegi máselelerdi sheshiń:

1. 1-den 10-ǵa shekem sanlardan turatıǵın dizim jaratıń
2. Dizimniń aqırǵı elementi menen birinshi elementin almastırıń
3. Dizimge jańa element qosıń hám onı sortırovkalań
4. Dizimniń barlıq elementlerin 2-ge kóbeytip shıǵıń
Sheshimi:
# 1. Dizim jaratıw
sanlar = list(range(1, 11))
print("Dáslepki dizim:", sanlar)

# 2. Elementlerdi almastırıw
sanlar[0], sanlar[-1] = sanlar[-1], sanlar[0]
print("Almastırılǵannan keyin:", sanlar)

# 3. Element qosıw hám sortırovkalaw
sanlar.append(5)
sanlar.sort()
print("Sortırovkalanǵannan keyin:", sanlar)

# 4. Elementlerdi 2-ge kóbeytiw
sanlar = [x * 2 for x in sanlar]
print("Kóbeytilgennen keyin:", sanlar)


Kodqa táriyip
1. Dizim jaratıw bólimi:
sanlar = list(range(1, 11))

• range(1, 11) funkciyası 1-den 10-ǵa shekem sanlar dizbegin dúzedi
• list() funkciyası bul dizbekti dizimge aylandıradı
• Nátiyjede [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] dizimi payda boladı
2. Elementlerdi almastırıw bólimi:
sanlar[0], sanlar[-1] = sanlar[-1], sanlar[0]

• sanlar[0] - dizimniń birinshi elementi (index 0)
• sanlar[-1] - dizimniń aqırǵı elementi
• = belgisiniń oń tárepindegi mánisler shep tárepke mánisleri menen almastırıladı
• Mısalı: [1, 2, 3, 4, 5] -> [5, 2, 3, 4, 1]
3. Element qosıw hám sortırovkalaw bólimi:
sanlar.append(5)
sanlar.sort()

• append(5) metodı dizimniń aqırına 5 sanın qosadı
• sort() metodı dizimdi ósiwshi tártipte sortırovkalaydı
• Mısalı: [5, 2, 3, 4, 1, 5] -> [1, 2, 3, 4, 5, 5]
4. Elementlerdi 2-ge kóbeytiw bólimi:
sanlar = [x * 2 for x in sanlar]

Bul qatarda list comprehension (dizim túsiniw) qollanılǵan:
• for x in sanlar - dizimniń hár bir elementi ushın
• x * 2 - elementi 2-ge kóbeytiledi
• Nátiyjede jańa dizim dúziledi
• Mısalı: [1, 2, 3] -> [2, 4, 6]
Hár bir qádemnen keyin print() funkciyası arqalı nátiyjeler ekranǵa shıǵarılıp barıladı. Bul programmanıń jumısın kóriw hám qáteliklerin tabıw ushın paydalı.
ÁMELIY MÍSALLAR:
1. Studentler hám bahalar mısalı:

# Studentler hám bahalar baǵdarlaması
def student_bahalar():
    # 1. Dizimlerdi jaratıw
    studentler = ["Arman", "Berdaq", "Gúlnaz", "Dawlet"]
    bahalar = [85, 92, 78, 95]
    
    # 2. Eń joqarı bahanı tabıw
    joqarı_baha = max(bahalar)
    joqarı_index = bahalar.index(joqarı_baha)
    joqarı_student = studentler[joqarı_index]
    
    # 3. Ortalıq bahanı esaplaw
    ortalıq_baha = sum(bahalar) / len(bahalar)
    
    # 4. Nátiyjelerin kórsetiw
    print("Student bahalarınıń analizi:")
    print("-" * 30)
    
    # Hár bir studenttiń bahasın kórsetiw
    for i in range(len(studentler)):
        print(f"{studentler[i]}: {bahalar[i]}")
    
    print("-" * 30)
    print(f"Eń joqarı baha: {joqarı_baha}, Student: {joqarı_student}")
    print(f"Ortalıq baha: {ortalıq_baha:.2f}")

# Baǵdarlamanı jumıs isletiw
student_bahalar()

2. Jup sanlar mısalı:
# Jup sanlar menen isleytuǵın baǵdarlama
def qos_sanlar_baǵdarlaması():
    # 1. Jup sanlar dizimin jaratıw (2 den 20 ǵa shekem)
    sanlar = list(range(2, 21, 2))
    print("Dáslepki qos sanlar dizimi:", sanlar)
    
    # 2. Dizimge jańa element qosıw
    sanlar.append(22)
    print("22 qosılǵannan keyin:", sanlar)
    
    # 3. Dizimdi kerisine aylandırıw
    sanlar.reverse()
    print("Kerisine aylanǵan dizim:", sanlar)
    
    # 4. Dizimniń barlıq elementlerin 2 ge kóbeytiw
    jańa_sanlar = [san * 2 for san in sanlar]
    print("Elementler 2 ge kóbeytirilgennen keyin:", jańa_sanlar)
    
    # 5. Dizimniń ulıwma maǵlıwmatların kórsetiw
    print(f"\nDizim haqqında maǵlıwmatlar:")
    print(f"Dizim uzınlıǵı: {len(sanlar)}")
    print(f"Eń kishi san: {min(sanlar)}")
    print(f"Eń úlken san: {max(sanlar)}")
    print(f"Barlıq sanlardıń qosındısı: {sum(sanlar)}")

# Baǵdarlamanı jumıs isletiw
qos_sanlar_baǵdarlaması()

3. Shopping list mısalı:
# Shopping list baǵdarlaması
def shopping_list_baǵdarlaması():
    # 1. Bos shopping list jaratıw
    shopping_list = []
    
    # 2. Funkciyalar
    def produkt_qosıw(produkt):
        shopping_list.append(produkt)
        print(f"{produkt} shopping listke qosıldı")
    
    def produkt_óshiriw(produkt):
        if produkt in shopping_list:
            shopping_list.remove(produkt)
            print(f"{produkt} shopping listten óshirildi")
        else:
            print(f"{produkt} shopping listte joq")
    
    def shopping_list_kórsetiw():
        if shopping_list:
            print("\nShopping list:")
            for i, item in enumerate(shopping_list, 1):
                print(f"{i}. {item}")
        else:
            print("\nShopping list bos")
    
    # 3. Shopping listke produktlar qosıw
    produkt_qosıw("alma")
    produkt_qosıw("nan")
    produkt_qosıw("sút")
    produkt_qosıw("gósht")
    
    # 4. Shopping listti kórsetiw
    shopping_list_kórsetiw()
    
    # 5. Bir produkttı óshiriw
    produkt_óshiriw("alma")
    
    # 6. Jańa halattı kórsetiw
    shopping_list_kórsetiw()
    
    # 7. Bar/joq produkttı óshirip kóriw
    produkt_óshiriw("balıq")

# Baǵdarlamanı jumıs isletiw
shopping_list_baǵdarlaması()

4. Sanlar dizimin filtrlew mısalı:
# Sanlar dizimin filtrlew baǵdarlaması
def sanlar_filtrlew():
    # 1. 1 den 20 ǵa shekem sanlar dizimin jaratıw
    sanlar = list(range(1, 21))
    print("Dáslepki sanlar dizimi:", sanlar)
    
    # 2. Taq sanlar dizimin jaratıw
    taq_sanlar = [san for san in sanlar if san % 2 != 0]
    print("Taq sanlar:", taq_sanlar)
    
    # 3. Jup sanlar dizimin jaratıw
    qos_sanlar = [san for san in sanlar if san % 2 == 0]
    print("Qos sanlar:", qos_sanlar)
    
    # 4. 5 ke bólinetuǵın sanlar
    bes_bóliniwshi = [san for san in sanlar if san % 5 == 0]
    print("5 ke bólinetuǵın sanlar:", bes_bóliniwshi)
    
    # 5. 10 nan úlken sanlar
    on_úlken = [san for san in sanlar if san > 10]
    print("10 nan úlken sanlar:", on_úlken)
    
    # 6. Statistika kórsetiw
    print("\nStatistika:")
    print(f"Taq sanlar sanı: {len(taq_sanlar)}")
    print(f"Qos sanlar sanı: {len(qos_sanlar)}")
    print(f"5 ke bólinetuǵın sanlar sanı: {len(bes_bóliniwshi)}")
    print(f"10 nan úlken sanlar sanı: {len(on_úlken)}")

# Baǵdarlamanı jumıs isletiw
sanlar_filtrlew()

Bul baǵdarlamalardıń hár biri:
1. Funkciyalar arqalı strukturalanǵan
2. Anıq kommentariyalar menen táriplengen
3. Nátiyjeleri kórsetiletuǵın etip jazılǵan
4. Qáteliklersiz jumıs isleydi