Logical Operators
Mantiqiy operatorlar bir nechta ifodalarni maxsus kalit so'zlar yordamida zanjirga bog'lash imkonini beradi.
Mantiqiy Operatorlar
Mantiqiy operatorlar bir nechta ifodalarni maxsus kalit so'zlar yordamida zanjirga bog'lash imkonini beradi. Python tomonidan qo'llab-quvvatlanadigan uchta mantiqiy operator quyidagilardir:
- and - Ikkala operand ham to'g'ri bo'lsa, faqat shunda to'g'ri
- or - Ikkita operanddan biri to'g'ri bo'lsa, to'g'ri
- not - Operand noto'g'ri bo'lsa, to'g'ri
Keling, oldingi bo'limdagi misolni ishlatib, mantiqiy and
operatoridan foydalanib, shartli bayonotlarni soddalashtirib ko'raylik:
and
operatorini ishlatganingizda, ikkala ifoda ham to'g'ri bo'lishi kerak, shunda ularning ostidagi kod bajariladi. Shunday qilib, birinchi shart yosh 21 dan katta yoki teng bo'lishini va avtomobil Yapon avtomobillari ro'yxatida ekanligini tekshiradi. Agar ikkalasi ham to'g'ri bo'lmasa, siz birinchi elif
ga o'tasiz va shartlarni tekshirasiz. Bu safar ikkala shart ham to'g'ri, shuning uchun avtomobil afzalligingiz chop etiladi.
Keling, and
o'rniga or
ni o'zgartirsangiz nima bo'lishini ko'raylik:
Kutib turing! Sizning avtomobilingiz "Ford" edi, lekin bu kod siz Yapon avtomobillarini xarid qilayotganingizni aytmoqda! Nima bo'lyapti?
Mantiqiy or
operatorini ishlatganingizda, agar ikkita bayonotdan biri to'g'ri bo'lsa, u kod bloki bajariladi. Keling, buni biroz o'rganamiz. if age >= 21 or car in ['Honda', 'Toyota']
da ikkita ifoda mavjud. Birinchisi age >= 21
. U to'g'ri baholanadi. Python or
ni ko'rganida va birinchi bayonot to'g'ri ekanligini bilsa, butun ifodani to'g'ri deb baholaydi. Ikkala holda ham, sizning yoshingiz 21 dan katta yoki teng bo'lishi yoki avtomobilingiz "Ford". Har holda, bu to'g'ri va u kod bajariladi.
not
operatori ishlatishda biroz boshqacha. U ushbu misolga to'g'ri kelmaydi, lekin oldingi autentifikatsiya misolimiz bilan ishlaydi:
not
operatorini ishlatib, muvaffaqiyat va muvaffaqiyatsizlik bloklarini o'zgartirdik - bu muvaffaqiyatsizlikni hal qilish kodlari qisqa bo'lganda foydali bo'lishi mumkin.
Siz shartli bayonotda mantiqiy operatorlarni birlashtirishingiz mumkin. Mana bir misol:
Bu safar, agar yosh 14 dan kichik yoki teng bo'lsa va sut rangi oq yoki yashil bo'lsa, kodning birinchi yarmini bajaradi. 2-chi va 3-chi ifodalar atrofidagi qavslar juda muhim, chunki ular ustuvorlikni bildiradi, ya'ni ma'lum bir operatorning qanchalik muhimligini. and
operatori or
dan ko'ra muhimroq, shuning uchun qavslar bo'lmasa, Python yuqoridagi kodni if (age <= 14 and color == 'white') or color == 'green':
deb talqin qiladi. Bu sizning niyatingiz emas! Buni o'zingizga isbotlash uchun, rangni 'green' ga o'zgartirib, yoshni 100 ga o'rnating, shartli bayonotdagi qavslarni olib tashlang va kodni yana bir bor ishga tushiring.