Barcha kurslar Yo'nalishlar Reyting Kirish Ro'yxatdan o'tish

Bu bo'limda dastur "qaror qabul qilish"ni o'rgandi (shartlar) va bir nechta qiymatni birgalikda saqlash boshlandi: ro'yxatlar (list) va o'zgarmas ro'yxatlar (tuple).

Shartlar: if / elif / else

Shu paytgacha dastur qatorlarni yuqoridan pastga ketma-ket bajarardi. if unga tanlov kiritadi — shart rost bo'lsa bir yo'l, bo'lmasa boshqa yo'l:

ball = 78

if ball >= 90:
    print("A'lo")
elif ball >= 70:
    print("Yaxshi")
elif ball >= 50:
    print("Qoniqarli")
else:
    print("Qayta topshirish kerak")

print("Baholash tugadi")

Natija:

Yaxshi
Baholash tugadi

Qoidalar:

  • Shartdan keyin ikki nuqta (:) majburiy.
  • Shartga tegishli kod 4 bo'sh joy ichkarida yoziladi — Python blokni aynan shu surilish (indentatsiya) orqali biladi. Surilmagan print("Baholash tugadi") shartga bog'liq emas, har doim ishlaydi.
  • eliflar yuqoridan pastga tekshiriladi va birinchi rost bo'lgani bajariladi: 78 ball >= 70da to'xtadi, >= 50gacha yetib bormadi.
  • else — "qolgan hamma holat"; sharti yozilmaydi.

Taqqoslash operatorlari: == (teng), != (teng emas), >, <, >=, <=. Bir nechta shartni birlashtirish: and (ikkalasi ham), or (kamida bittasi), not (inkor):

yosh = 20
talaba = True
if yosh >= 18 and talaba:
    print("Talabalar chegirmasi beriladi")

Natija:

Talabalar chegirmasi beriladi

Tipik xato — taqqoslashda bitta = yozish:

if yosh = 18:

Natija:

SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?

Bitta = — qiymat berish, ikkitasi == — taqqoslash. Python xabarda o'zi eslatyapti.

Ro'yxatlar (list)

Ro'yxat bir nechta qiymatni tartib bilan saqlaydi. Kvadrat qavsda yoziladi, elementlariga indeks orqali murojaat qilinadi (0 dan boshlab):

mevalar = ["olma", "nok", "uzum"]
print(mevalar[0])
print(mevalar[-1])       # manfiy indeks — oxiridan
print(len(mevalar))

Natija:

olma
uzum
3

Ro'yxatni o'zgartirish — qo'shish, o'chirish, almashtirish:

mevalar.append("anor")        # oxiriga qo'shadi
mevalar.insert(1, "banan")    # 1-indeksga suqib qo'yadi
mevalar.remove("nok")         # qiymat bo'yicha o'chiradi
mevalar[0] = "qizil olma"     # indeks bo'yicha almashtiradi
print(mevalar)
oxirgi = mevalar.pop()        # oxirgisini olib tashlaydi VA qaytaradi
print(oxirgi, "-", mevalar)

Natija:

['qizil olma', 'banan', 'uzum', 'anor']
anor - ['qizil olma', 'banan', 'uzum']

Element borligini in bilan tekshirish va for bilan aylanib chiqish:

if "uzum" in mevalar:
    print("Uzum bor")

for meva in mevalar:
    print("Savatda:", meva)

Natija:

Uzum bor
Savatda: qizil olma
Savatda: banan
Savatda: uzum

Tipik xato — mavjud bo'lmagan indeksga murojaat: uch elementli ro'yxatda indekslar 0, 1, 2; mevalar[3] esa IndexError: list index out of range beradi. Ro'yxat necha elementli ekaniga ishonch bo'lmasa, len() bilan tekshiring.

Tuple — o'zgarmas ro'yxat

Tuple ro'yxatga o'xshaydi, lekin yaratilgach o'zgartirilmaydi. Oddiy qavsda yoziladi:

koordinata = (41.31, 69.24)
print(koordinata[0])
koordinata[0] = 42

Natija:

41.31
TypeError: 'tuple' object does not support item assignment

O'zgarmaslik — kamchilik emas, kafolat: koordinata, sozlamalar, haftaning kunlari kabi o'zgarmasligi kerak bo'lgan ma'lumotni tuple'da saqlash "tasodifan buzilish"dan himoya qiladi.

list tuple
Qavslar [1, 2, 3] (1, 2, 3)
O'zgartirish append, remove, [i] = x Mumkin emas
Qachon ishlatiladi Ma'lumot o'zgarib turadi Ma'lumot qat'iy
Tezlik/xotira Bir oz tejamkorroq

Eslab qoling

  • if/elif/else: shartdan keyin :, ichki kod 4 bo'sh joy ichkarida; birinchi rost shart g'olib.
  • == taqqoslaydi, = qiymat beradi; and/or/not shartlarni birlashtiradi.
  • Ro'yxat: indeks 0 dan, append/insert/remove/pop, in — mavjudlik, for — aylanish.
  • pop() o'chiradi va qaytaradi — bu ikkisi birga kerak bo'lganda ishlatiladi.
  • Tuple o'zgarmas; qat'iy ma'lumotlar uchun.

Amaliyot

  1. Foydalanuvchi yoshini o'zgaruvchiga yozib, if/elif/else bilan "bola (0-12) / o'smir (13-17) / katta (18+)" deb baholang.
  2. Harorat va yog'ingarchilik (True/False) bo'yicha maslahat bering: issiq va quruq — "piyoda yuring", sovuq yoki yomg'ir — "transport oling" (and/or ishlating).
  3. Haftaning 7 kunini ro'yxatga yozing; birinchi, oxirgi va o'rtadagi kunini chiqaring; for bilan hammasini sanab chiqing.
  4. Xarid ro'yxatini boshqaring: 3 mahsulot bilan boshlang, bittasini remove, ikkitasini append, birinchisini almashtiring — har qadamda ro'yxatni chiqarib boring.
  5. sonlar = [12, 7, 25, 3, 18] uchun for + if bilan faqat 10 dan kattalarini chiqaring va nechta ekanini sanang.
  6. O'z shahringiz koordinatasini tuple qiling; o'zgartirishga urinib, xatoni o'qing; keyin xuddi shu ma'lumotni qachon list qilish o'rinli bo'lishini bir gap bilan yozing.

Mavzular bo'lim testida mustahkamlanadi.

Shartlar va ro'yxatlar — konspekt

Shartlar va tarmoqlanish Maqola

if/elif/else shartlari, ro'yxatlar (list) va o'zgarmas ro'yxatlar (tuple) — bir sahifada.

Eslatma yozish uchun saytga kiring.

Resurslar hozircha qo'shilmagan

O'qituvchi dars uchun qo'shimcha materiallarni qo'shganida shu yerda paydo bo'ladi.

Savol berish uchun saytga kiring.

Hozircha savollar yo'q

Bu dars yuzasidan birinchi savolni siz bering.