पायथन में C/C++/Java की तरह ++ और -- यूनरी ऑपरेटर्स नहीं हैं।
पायथन में वृद्धि/कमी
# इन्क्रीमेंट a += 1 # a = a + 1 के बराबर # डिक्रीमेंट a -= 1 # a = a - 1 के बराबर
उदाहरण
a = 0
print(f"प्रारंभिक: {a}") # 0
# इन्क्रीमेंट
a += 1
print(f"इन्क्रीमेंट के बाद: {a}") # 1
# डिक्रीमेंट
a -= 1
print(f"डिक्रीमेंट के बाद: {a}") # 0
पायथन में ++ और -- का व्यवहार
a = 1 print(++a) # 1 - यह +(+a) है, इन्क्रीमेंट नहीं! print(--a) # 1 - यह -(-a) है, डिक्रीमेंट नहीं! # व्याख्या: # ++a = +(+a) = a # --a = -(-a) = a
पायथन का ऑब्जेक्ट मॉडल: इम्यूटेबल इंटीजर्स
पायथन में इंटीजर्स इम्यूटेबल हैं। a += 1 वास्तव में:
- वर्तमान ऑब्जेक्ट ढूंढता है जिसे
aसंदर्भित करता है - उसका मान पढ़ता है
- नया इंटीजर ऑब्जेक्ट बनाता है (मान + 1)
aको नए ऑब्जेक्ट से रीबाइंड करता है- पुराना ऑब्जेक्ट गार्बेज कलेक्ट होता है (यदि कोई अन्य रेफरेंस नहीं)
a = 1
print(f"a = {a}, id = {id(a)}, hex = {hex(id(a))}")
a += 1
print(f"a = {a}, id = {id(a)}, hex = {hex(id(a))}")
# id बदल गया - नया ऑब्जेक्ट!
आउटपुट
a = 1, id = 140712345678912, hex = 0x7ff8b8c0 a = 2, id = 140712345678944, hex = 0x7ff8b8e0
मल्टीपल रेफरेंसेज पर प्रभाव
a = b = c = 1
print(f"प्रारंभिक: id(a)={id(a)}, id(b)={id(b)}, id(c)={id(c)}")
# सभी समान id
a += 1
print(f"a+=1 के बाद: id(a)={id(a)}, id(b)={id(b)}, id(c)={id(c)}")
# a का id बदल गया, b और c समान रहे
आउटपुट
प्रारंभिक: id(a)=140712345678912, id(b)=140712345678912, id(c)=140712345678912 a+=1 के बाद: id(a)=140712345678944, id(b)=140712345678912, id(c)=140712345678912
अन्य ऑगमेंटेड असाइनमेंट ऑपरेटर्स
पायथन कई ऑगमेंटेड असाइनमेंट ऑपरेटर्स सपोर्ट करता है:
| ऑपरेटर | समतुल्य | उदाहरण |
|---|---|---|
+= | a = a + b | a += 5 |
-= | a = a - b | a -= 3 |
*= | a = a * b | a *= 2 |
/= | a = a / b | a /= 4 |
//= | a = a // b | a //= 2 |
%= | a = a % b | a %= 3 |
**= | a = a ** b | a **= 2 |
&= | a = a & b | a &= 0b1111 |
|= | a = a | b | a |= 0b0011 |
^= | a = a ^ b | a ^= 0b1010 |
>>= | a = a >> b | a >>= 1 |
<<= | a = a << b | a <<= 2 |
लूप्स में उपयोग
# फोर लूप (पायथनिक)
for i in range(10):
print(i)
# व्हाइल लूप में मैनुअल इन्क्रीमेंट
i = 0
while i < 10:
print(i)
i += 1 # इन्क्रीमेंट
# रिवर्स
for i in range(10, 0, -1):
print(i)
i = 10
while i > 0:
print(i)
i -= 1 # डिक्रीमेंट
सारांश
- पायथन में
++/--नहीं हैं += 1और-= 1उपयोग करें- ये ऑपरेटर्स रीअसाइनमेंट हैं, इन्क्रीमेंट नहीं (इम्यूटेबिलिटी के कारण)
- मल्टीपल रेफरेंसेज स्वतंत्र रूप से काम करते हैं
- अन्य ऑगमेंटेड असाइनमेंट ऑपरेटर्स उपलब्ध हैं