Mavzu
Dars xulosasi
elif— inglizcha else if ("aks holda agar") so‘zlarining qisqartmasi bo‘lib, 3 va undan ortiq tanlovlar mavjud bo‘lganda ishlatiladi.- Dastur shartlarni yuqoridan pastga qarab tekshiradi: birinchi to‘g‘ri kelgan (
True) shart bajariladi va qolgan barchaelifhamdaelsebloklari tashlab ketiladi. if - elif - elsezanjiridaelsehar doim eng oxirida turadi va oldingi hech qaysi shart bajarilmaganda ishga tushadi.- Rasmiy dasturimizdagi muhim topshiriqlar: sonning ishorasini aniqlash, ikki sondan kattasini topish, yosh toifasi va ob-havo harorati tavsiyalari.
- Boshlang‘ich dasturchilar eng ko‘p yo‘l qo‘yadigan 3 ta xato:
=va==ni adashtirish,:ni unutish hamda noto‘g‘ri chekinish (indentation).
Qo'shimcha ma'lumot
Nega ko‘p if emas, aynan if-elif-else?
Faraz qiling, bizda 4 ta alohida if yozilgan:
python
# Yomon usul (4 ta if)
if ball >= 86:
baho = 5
if ball >= 71:
baho = 4
if ball >= 56:
baho = 3Agar ball = 90 bo‘lsa, dastur birinchi shartni tekshiradi (baho = 5), keyin ikkinchi shartni tekshiradi (90 >= 71 ham True, shuning uchun baho = 4 bo‘lib qoladi!), keyin uchinchi shartni tekshiradi va oxirida baho = 3 bo‘lib chiqadi! Bu jiddiy mantiqiy xatodir. elif ishlatilganda esa, birinchi to‘g‘ri shart bajarilishi bilan qolganlari tekshirilmaydi:
python
# To'g'ri usul (if-elif-else)
if ball >= 86:
baho = 5
elif ball >= 71:
baho = 4
elif ball >= 56:
baho = 3
else:
baho = 2input() funksiyasi bilan konsoldan ma'lumot olish
Haqiqiy backend dasturlarida ma'lumotlar foydalanuvchidan qabul qilinadi. Pythonda buning uchun input() funksiyasi ishlatiladi. Diqqat! input() har doim ma'lumotni matn (str) ko‘rinishida qabul qiladi. Shu sababli sonli shartlarda uni albatta int() ga o‘tkazish kerak:
python
son = int(input("Butun son kiriting: "))Odatiy xatolar
- Taqqoslashda bitta tenglik qo‘yish:
if ball = 60:→SyntaxError: cannot assign to comparison - Shartlar tartibini adashtirish: Agar eng kichik shartni tepaga qo‘ysangiz (masalan,
if ball >= 56:ni eng birinchi yozsangiz), 90 olgan talabaga ham 3 baho qo‘yilib ketadi. Shartlar har doim qat'iy mantiqiy tartibda yozilishi lozim!
Atamalar lug'ati
| Atama | Ma'nosi |
|---|---|
| elif | else if ("aks holda agar") qisqartmasi |
| if-elif-else | Ko‘p tarmoqli shartli tekshiruv konstruksiyasi |
| input() | Foydalanuvchidan konsol orqali ma'lumot qabul qiluvchi funksiya |
| int(input()) | Kiritilgan matnni butun songa aylantirish |
| Mantiqiy xato | Dastur xatosiz ishlaydi, ammo natija noto‘g‘ri chiqadi |
| Chekinish (Indent) | Kod blokini ajratib ko‘rsatuvchi 4 ta bo‘sh joy |
| Oraliq shart | Qiymatning ma'lum intervalda (a <= x <= b) yotishini tekshirish |
Bilasizmi?
- Veb-serverlar foydalanuvchi so‘rovlariga javob qaytarishda aynan
elifzanjiridan foydalanadi: "Agar sahifa topilsa → 200 OK; Agar ruxsat bo‘lmasa → 403 Forbidden; Agar sahifa mavjud bo‘lmasa → 404 Not Found; Aks holda → 500 Server Error". - Python 3.10 versiyasigacha Pythonda C/Java tillaridagi
switch/caseoperatori yo‘q edi, uning o‘rnini faqatif-elif-elsebosgan. (Keyingi haftada biz yangimatch/caseoperatorini ham o‘rganamiz!)
Topshiriqlar
1. Musbat, manfiy yoki nol oson
Rasmiy qo‘llanmadagi 1-topshiriq: Bitta butun son berilgan. Agar son 0 dan katta bo‘lsa "Musbat son", 0 dan kichik bo‘lsa "Manfiy son", 0 ga teng bo‘lsa "Nolga teng" deb chiqaring. Kutiladigan natija: -15 kiritilganda Manfiy son chiqishi.
2. Baholash tizimi oson
O‘quvchining bali ball = 88 deb oling. Rasmiy mezon bo‘yicha:
ball >= 86→ 5ball >= 71→ 4ball >= 56→ 3- Aks holda → 2 natijasini konsolga chiqaring. Kutiladigan natija:
Baho: 5
3. Harorat tavsiyasi oson
Rasmiy qo‘llanmadagi 4-topshiriq: Havo harorati harorat = 16 daraja.
- 0 dan past bo‘lsa →
"Sovuq, qalin kiyining" - 0 dan 20 gacha bo‘lsa →
"Salqin" - 20 dan yuqori bo‘lsa →
"Issiq"Kutiladigan natija:Salqin
4. Svetafor signallari oson
Rang rang = "yashil" deb berilgan.
"qizil"→"To'xtang!""sariq"→"Tayyorlaning!""yashil"→"Harakatlaning!"- Boshqa rang →
"Noto'g'ri rang"Kutiladigan natija:Harakatlaning!
5. Ikki sondan kattasi yoki tengligi o'rta
Rasmiy qo‘llanmadagi 2-topshiriq: a = 25 va b = 25. Agar a > b bo‘lsa a ni, b > a bo‘lsa b ni chiqaring. Agar teng bo‘lsa "Sonlar teng" deb chiqaring. Kutiladigan natija: Sonlar teng
6. Yoshga qarab toifa o'rta
Rasmiy qo‘llanmadagi 3-topshiriq: yosh = 14.
- 0–6 →
"Bog‘cha yoshi" - 7–17 →
"Maktab o‘quvchisi" - 18 va undan katta →
"Voyaga yetgan"Kutiladigan natija:Maktab o‘quvchisi
7. Hafta kuni nomi o'rta
Raqam kun = 3 berilgan bo‘lsa, elif yordamida hafta kunining nomini (1 - Dushanba, ..., 7 - Yakshanba) chiqaring. 1–7 oralig‘ida bo‘lmasa "Xato kun" xabarini bering. Kutiladigan natija: Chorshanba
8. Fikr va takliflar bahosi o'rta
Mijoz xizmat sifatiga 1 dan 5 gacha yulduzcha berdi (yulduz = 4):
- 5 →
"A'lo xizmat" - 4 →
"Yaxshi, minnatdormiz" - 3 →
"O'rtacha, xatolarni to'g'rilaymiz" - 1 yoki 2 →
"Kechirasiz, shikoyatingiz qabul qilindi"Kutiladigan natija:Yaxshi, minnatdormiz
9. Uchta sondan eng kattasini topish qiyin
Uchta son berilgan: x = 45, y = 89, z = 62. Faqat if-elif-else va and operatorlaridan foydalanib, uchta sondan eng kattasini topuvchi mukammal dastur tuzing. Kutiladigan natija: Eng katta son: 89
10. Valyuta konverteri qiyin
Foydalanuvchida mablag = 1000000 so‘m bor va u valyutani tanlaydi (valyuta = "USD" yoki "EUR" yoki "RUB").
- USD: 12 800 so‘m
- EUR: 13 900 so‘m
- RUB: 140 so‘m Tanlangan valyutaga qarab mablag‘ni hisoblab chiqaruvchi dastur yozing. Kutiladigan natija:
Sizning mablag'ingiz: 78.12 USD
11. To‘liq interaktiv diagnostika bot bonus
input() orqali foydalanuvchining server monitoring holatini so‘rovchi mini diagnostika dasturi tuzing:
- CPU yuklamasi (0–100%)
- RAM yuklamasi (0–100%) Agar ikkalasi ham 85% dan oshsa →
"KRITIK HOLAT: Server qizib ketmoqda!"Agar faqat bittasi 85% dan oshsa →"OGOHLANTIRISH: Resurslar chegarada"Aks holda →"Tizim normal holatda ishlamoqda". Kutiladigan natija: To‘liq ishlovchi server monitoring tahlili.
O'zingizni tekshiring
elifoperatoriningelse ifdan qanday farqi bor?- Nega
if-elif-elsezanjirida shartlarning yozilish tartibi muhim? - Agar hech qaysi
ifvaelifsharti bajarilmasa nima sodir bo‘ladi? input()orqali olingan ma'lumotni nima uchunint()ga o‘tkazish kerak?- Pythonda
=va==operatorlarining vazifalarini yana bir bor tushuntiring. - Rasmiy qo‘llanmadagi "Harorat tavsiyasi" topshirig‘ida shartlar qanday tartibda tuzildi?
Uyga vazifa
- Rasmiy 4 ta topshiriqni alohida fayllarga yozing:
musbat_manfiy.py(0 dan katta, kichik yoki nol);kattasi.py(ikki sondan kattasini yoki tengligini topish);yosh_toifa.py(bog‘cha, maktab, voyaga yetgan);harorat.py(sovuq, salqin, issiq).
- Dasturlarni turli xil qiymatlar bilan sinab ko‘ring va konsol natijalarini tekshiring.
