Mavzu
Dars xulosasi
- Operator — ma'lumotlar ustida amal bajaruvchi belgi (
+,==,and). Operand — amal bajarilayotgan qiymat. - Ifoda (Expression) — hisoblanganda muayyan natija (qiymat) qaytaruvchi kod bo‘lagi.
- Taqqoslash operatorlari (
==,!=,<,>,<=,>=) har doim mantiqiy natija —TrueyokiFalseqaytaradi. =belgisi o‘zlashtirish,==belgisi esa taqqoslash uchun xizmat qiladi; ularni almashtirib bo‘lmaydi.andoperatori barcha shartlar rost bo‘lgandaginaTrueberadi;oroperatori esa kamida bitta shart rost bo‘lsaTrueberadi.notoperatori mantiqiy natijani teskarisiga aylantiradi (not True->False).invanot inoperatorlari biror element to‘plam yoki matn ichida bor-yo‘qligini tekshiradi.
Qo'shimcha ma'lumot
Nega ifodalar (expressions) muhim?
Backend tizimlarida har bir qaror ifodalar ustiga quriladi. Masalan:
- Foydalanuvchi tizimga kirishga urinmoqda:
parol_togrimi and hisob_faolmi - Mahsulot buyurtma qilinmoqda:
omborda_bormi and balans >= narx - Ruxsat berish:
rol == "admin" or rol == "moderator"Agar dasturchi operatorlar va ifodalarni mukammal bilmasa, tizimda xavfsizlik zaifliklari va hisob-kitob xatolari yuzaga keladi.
Qisqa tutashuvli baholash (Short-circuit evaluation)
Python and va or ifodalarini juda tejamkorlik bilan hisoblaydi:
andamali bajarilayotganda, agar birinchi shartFalsebo‘lsa, Python ikkinchi shartni hatto o‘qib ham o‘tirmaydi! Chunki natija baribirFalsebo‘lishi aniq.oramali bajarilayotganda, agar birinchi shartTruebo‘lsa, keyingi shartlarni tekshirish to‘xtatiladi, chunki natija baribirTruebo‘ladi. Bu xususiyat backendda keraksiz og‘ir operatsiyalarni bajarmaslik uchun juda asqotadi.
Matnlarni taqqoslash: Alifbo tartibi
Pythonda matnlar ham taqqoslash operatorlari bilan solishtirilishi mumkin ("olma" < "shaftoli"). Bu solishtirish harflarning ASCII/Unicode jadvalidagi o‘rniga qarab amalga oshiriladi (alifbo bo‘yicha oldin keladigan so‘z kichik hisoblanadi). E'tibor bering, barcha katta harflar ("A") kichik harflardan ("a") oldin turadi, shuning uchun "B" < "a" ifodasi True qaytaradi!
Odatiy xatolar
- Taqqoslash o‘rniga o‘zlashtirish qo‘yish:
if x = 5— bu jiddiy sintaksis xatosi (SyntaxError). To‘g‘risi:x == 5. - String ichida raqamni solishtirish:
"10" > "2"kodiFalseqaytaradi! Chunki bu yerda sonlar emas, matnlar solishtiriladi va birinchi belgi"1"belgisi"2"dan kichik. Sonlarni solishtirishdan avval ularniint()toifasiga o‘tkazish kerak.
Atamalar lug'ati
| Atama | Ma'nosi |
|---|---|
| Ifoda (Expression) | Natija qaytaruvchi kod yozuvi (5 + 3, x > 10) |
| Operator | Amal bajaruvchi belgi (+, -, ==, and) |
| Operand | Operator qaysi qiymatlar ustida ishlayotgan bo‘lsa, o‘sha qiymatlar |
| Taqqoslash operatori | Qiymatlarni solishtirib bool qaytaruvchi operator (==, !=, <, >) |
| Mantiqiy operator | Shartlarni bog‘lovchi operatorlar (and, or, not) |
| A'zolik operatori | Elementning to‘plam ichida mavjudligini tekshiruvchi (in, not in) |
| Short-circuit | Shartning birinchi qismiga qarab tezkor xulosa chiqarish usuli |
| len() | Matn yoki to‘plam uzunligini qaytaruvchi funksiya |
Bilasizmi?
- Pythonda zanjirli taqqoslash mumkin:
10 < x < 20deb yozish boshqa tillardagi10 < x and x < 20bilan bir xil va juda chiroyli o‘qiladi! - Boolean toifasidagi
Trueson sifatida1ga,Falseesa0ga teng hisoblanadi. Masalan,True + Trueamali2qaytaradi! inoperatori backendda qidiruv, filtrlash va foydalanuvchi huquqlarini tekshirishda eng ko‘p qo‘llaniladigan kalit so‘zlardan biridir.
Topshiriqlar
1. Oddiy taqqoslashlar oson
x = 18 va y = 25 o‘zgaruvchilarini yarating. x < y, x == y, x != y ifodalarining natijalarini konsolga chiqaring. Kutiladigan natija:
text
x < y: True
x == y: False
x != y: True2. Imtihon tekshiruvi oson
O‘quvchining bali ball = 82 ga teng. Agar ball 60 dan katta yoki teng bo‘lsa True chiqaruvchi imtihon_otdi nomli mantiqiy ifoda yozing. Kutiladigan natija: Imtihondan o'tdi: True
3. Matn ichidan qidiruv (in) oson
matn = "Advanced Python Backend va DevOps kursi" berilgan. Matn ichida "Backend" so‘zi bor-yo‘qligini in orqali tekshirib konsolga chiqaring. Kutiladigan natija: Backend so'zi bormi: True
4. not operatori oson
yomgir = True bo‘lsa, not yomgir nima natija berishini ekranga chiqaring va ma'nosini tushuntiring. Kutiladigan natija: Yomg'ir yo'qmi: False
5. Yosh oralig‘i tekshiruvi o'rta
yosh = 15. O‘quvchi maktab yoshidami yoki yo‘qligini aniqlash uchun yosh >= 7 and yosh <= 18 mantiqiy ifodasini tuzing va natijani ekranga chiqaring. Kutiladigan natija: Maktab yoshidami: True
6. Do‘kon chegirma sharti o'rta
Do‘konda xarid summasi summa = 120000 so‘m yoki mijoz maxsus kartaga ega (karta_bormi = True). Chegirma olish uchun summa >= 100000 or karta_bormi ifodasini yozing va natijani ko‘ring. Kutiladigan natija: Chegirma beriladimi: True
7. Taqiqlangan so‘z tekshiruvi o'rta
Izoh matni berilgan: izoh = "Ushbu mahsulot juda sifatsiz va yomon ekan". Izohda "spam" so‘zi yo‘qligini not in operatori yordamida tekshiring. Kutiladigan natija: Izoh toza (spam yo'q): True
8. Juft son ekanligini taqqoslash o'rta
Sonning juftligini aniqlash uchun qoldiq operatori va taqqoslash birga ishlatiladi: son % 2 == 0. 44 va 59 sonlarini juftlikka tekshiruvchi kod yozing. Kutiladigan natija:
text
44 juftmi: True
59 juftmi: False9. Xavfsiz tizimga kirish qiyin
Tizimga kirish uchun quyidagi shartlar bir vaqtda bajarilishi kerak:
login == "admin"parol == "secret123"faol == TrueUchala parametrni e'lon qiling va foydalanuvchiga ruxsat berilganligini bitta mantiqiy ifoda bilan tekshiring. Kutiladigan natija:Kirishga ruxsat: True
10. Zanjirli taqqoslash qiyin
Harorat t = 24 daraja. Harorat xona harorati oralig‘ida (18 <= t <= 26) ekanligini Pythondagi zanjirli taqqoslash sintaksisi orqali tekshirib konsolga chiqaring. Kutiladigan natija: Harorat qulay: True
11. Murakkab kirish tekshiruvi (IP va Rol) bonus
Serverga so‘rov keldi: mijoz_ip = "192.168.1.10"admin_ip_list = ["192.168.1.1", "192.168.1.10", "192.168.1.25"]soat = 14 Foydalanuvchining IP manzili ruxsat etilganlar ro‘yxatida bo‘lsa (in) VA ish vaqti (9 <= soat <= 18) bo‘lsa, tizimga kirishga ruxsat beruvchi mukammal ifoda tuzing. Kutiladigan natija: Serverga kirish ruxsati: True
O'zingizni tekshiring
- Operator va operand tushunchalarini misol bilan tushuntiring.
- Nega
5 == "5"ifodasiFalsenatija beradi? andvaormantiqiy operatorlarining asosiy farqi nimada?- Qisqa tutashuvli baholash (short-circuit) qanday ishlaydi?
inoperatori qanday vaziyatlarda qo‘llaniladi?- Nega
if x = 10deb yozish xatolik keltirib chiqaradi?
Uyga vazifa
shartlar.pyfaylini oching.- Foydalanuvchining balli
78deb olinsa, uning 4 baho olish shartini (ball >= 71 and ball < 86) ifodalang. - Berilgan
email = "[email protected]"matnida"@"va".uz"belgilari mavjudligini tekshiruvchi dastur tuzing. - Foydalanuvchi kiritgan son 3 ga ham, 5 ga ham karrali (qoldiqsiz bo‘linishini) tekshiruvchi ifoda yozing.
