Operators + Boolean Logic
Comparison, identity, और सत्यता
यह क्यों मायने रखता है
निर्णय लेना और loops booleans पर टिके होते हैं। एक ग़लत comparison सब कुछ बिगाड़ देता है।
मूल विचार
Operators expressions को नए मानों में बदलते हैं। == मानों की समानता जाँचता है, is पहचान जाँचता है (memory में वही object)। Literals के लिए, 1 == 1.0 True है पर 1 is 1.0 False है।
अंकगणितीय operators
| Operator | अर्थ |
| --- | --- |
| + | जोड़ |
| - | घटाव |
| * | गुणा |
| / | भाग (float) |
| // | floor भाग |
| % | शेषफल |
| ** | घात |
/ हमेशा एक float लौटाता है (6 / 2 == 3.0); जब आपको पूर्णांक भागफल चाहिए तो // इस्तेमाल कीजिए। % शेषफल देता है — "क्या यह सम है?" और चक्रीय-index वाली समस्याओं का काम का घोड़ा।
आज़माकर देखिए
Python में सत्यता (truthiness): 0, "", [], {}, None सब falsy हैं। बाक़ी सब कुछ truthy है।
for v in [0, 1, "", "hi", [], [0], None, {}, {"k": 0}]:
print(repr(v), "->", bool(v))
Short-circuit evaluation: and पहला falsy operand लौटाता है (या आख़िरी मान); or पहला truthy लौटाता है।
print(0 or "fallback") # 'fallback'
print(5 or "fallback") # 5
print(0 and "blocked") # 0
print(5 and "passed") # 'passed'
असली code में identity बनाम equality का चक्कर:
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True — same values
print(a is b) # False — different objects
c = a
print(a is c) # True — same object
झटपट जाँच
- प्र:
isकब इस्तेमाल करना चाहिए? उ: पहचान जाँचने के लिए (जैसेx is None)।
छोटे अभ्यास
%का इस्तेमाल करके जाँचिए कि कोई number सम है या नहीं।- जाँचिए कि कोई character किसी string में मौजूद है या नहीं।
क्या करें और क्या न करें
- करें
Noneजाँच के लिएx is Noneइस्तेमाल करें। - न करें strings या numbers की तुलना के लिए
isइस्तेमाल न करें।
आम ग़लतियाँ
- ग़लती:
==की जगहisइस्तेमाल करना। समाधान: मान की समानता के लिए==इस्तेमाल करें। - ग़लती:
if x = 3। समाधान: conditions में==इस्तेमाल करें।
मुख्य बातें
==मान की तुलना करता है;isपहचान की तुलना करता है।- Short-circuit operators डिफ़ॉल्ट देने के लिए काम के हैं (
x or 0)। - Falsy मान:
0,"",[],{},None,set()। - कभी भी
True/Falseसे सीधे तुलना न करें — बस मान का इस्तेमाल करें।