Special Operators
Shartli ifodalarda ishlatishingiz mumkin bo'lgan ba'zi maxsus operatorlar mavjud.
Maxsus Operatorlar
Shartli ifodalarda ishlatishingiz mumkin bo'lgan ba'zi maxsus operatorlar mavjud:
- is - Operands bir xil bo'lganda (ya'ni, bir xil id ga ega bo'lganda) to'g'ri
- is not - Operands bir xil bo'lmaganda to'g'ri
- in - Qiymat kollektsiyada (ro'yxat, tuplam, to'plam va boshqalar) bo'lsa, to'g'ri
- not in - Qiymat kollektsiyada bo'lmasa, to'g'ri
Birinchi ikkita operator identifikatsiyani sinab ko'rish uchun ishlatiladi. Sizga ikkita ob'ekt bir xil ob'ektga murojaat qilayotganini bilishingiz kerak; biz id()
funksiyasidan va ==
yoki !=
dan foydalanishimiz mumkin, ammo is
va is not
dan foydalanish juda oson.
So'nggi ikkita operator esa a'zolikka qarash uchun: biror narsaning kollektsiyada bo'lishi - masalan, qiymatning ro'yxatda yoki kalitning lug'atda bo'lishi.
Identifikatsiyaning qanday ishlashini ko'raylik:
Kutib turing, nima? Siz x va y ga bir xil ro'yxatni belgiladingizmi? Aslida emas. Birinchi [1, 2, 3]
ro'yxatni yaratadi va Python uni x
ga tayinlaydi; ikkinchi [1, 2, 3]
yana bir ro'yxat yaratadi va Python uni y
ga tayinlaydi - bu ikki yaratilish ikki ob'ekt demakdir. Ular teng ob'ektlar bo'lsa ham, ular hali ham farq qiladi.
Keling, stringlar bilan yana bir bor sinab ko'ramiz:
Yaxshi ko'rinadi! Yana bir bor:
Nima bo'ldi? Keling, buni bir oz o'ylab ko'raylik... ro'yxat o'zgarmas (mutable) bo'lib, uni o'zgartirishimiz mumkin, ammo str
o'zgarmas (immutable), bu esa uni o'zgartira olmaymiz. O'zgarmas ob'ektlar o'zgartirilmaydi, shuning uchun Python mavjud bo'lgan teng ob'ektlarni qayta ishlatishi mumkin, yangi ob'ektlar yaratmasligi mumkin. Shuning uchun faqat is
dan foydalanishda ehtiyot bo'lishingiz kerak - is
ni tenglik uchun ishlatish ba'zan tasodifan ishlaydi, ammo oxir-oqibat muvaffaqiyatsizlikka uchraydi va dasturingizda xato bo'ladi.
Siz in
va not in
dan kollektsiyada biror narsaning mavjudligini sinab ko'rish uchun foydalanishingiz mumkin. Python'dagi kollektsiyalar ro'yxatlar, stringlar, tuplar, lug'atlar va boshqalarni anglatadi.
Mana buni qanday ishlatishingiz mumkin:
Bu yerda siz char
ni valid_chars
stringida mavjudligini tekshiryapsiz. Agar u mavjud bo'lmasa, to'g'ri harflarni chop etadi.
char
ni to'g'ri belgi, masalan, kichik "y" yoki kichik "n" ga o'zgartirib, kodni yana bir bor ishga tushirib ko'ring.
Mana not in
dan foydalanishning bir usuli:
Bu holatda siz butun sonning ro'yxatda yo'qligini tekshiryapsiz.
Keling, boshqa bir autentifikatsiya misolida not in
dan foydalanishni ko'raylik:
Bu yerda sizda ma'lum bir ids
to'plami mavjud. Bu ids
raqamli bo'lishi mumkin, shuningdek, elektron pochta manzillari yoki boshqa narsalar bo'lishi mumkin. Har qanday holda, siz berilgan id
, my_id
sizning ma'lum ids
ro'yxatingizda bormi yoki yo'qligini tekshirishingiz kerak. Agar u yo'q bo'lsa, unda foydalanuvchiga davom etishga ruxsat berilmasligini bildira olasiz.