payment by upi: sinhamit@icici or payment by bank account name: amit kumar sinha, account number: 2646728782 IFSC code: KKBK0005660 SWIFT: KKBKINBB

Please support if you like my work by payment through upi: sinhamit@icici or payment by bank

account name: Amit Kumar Sinha,
account number: 2646728782
IFSC code: KKBK0005660
SWIFT: KKBKINBB


Comparison, Logical, Operators   in Category: पाइथन   by amit

🕙 Posted on 2023-06-30 at 18:30:31


ऑपरेटरों पर अधिक

    सशर्त (conditional) (या तुलना comparison) ऑपरेटर उन अभिव्यक्तियों (expressions) और ऑपरेंड के साथ काम करते हैं जो इन ऑपरेटरों के साथ तुलना करने पर, एक बूलियन मान, अर्थात True या False आउटपुट करते हैं। तार्किक (logical) संचालक इन तुलनाओं की कार्यक्षमता को बढ़ाते हैं। आइए इन ऑपरेटरों के बारे में जानें।

तुलना ऑपरेटर्स

    पायथन में, केवल कुछ तुलना संचालक हैं, अर्थात्, == (बराबर), != (बराबर नहीं), < (इससे कम), > (इससे अधिक), <= (इससे कम या इसके बराबर), और >= (इससे अधिक या इसके बराबर)। PHP और JavaScript के विपरीत, कोई ===, !==, <>, <=>, और अन्य समान ऑपरेटर नहीं हैं। आप निम्नलिखित उदाहरण में 5 == '5' का आउटपुट False देख सकते हैं, जो PHP और JavaScript में OUTPUT के विपरीत है।

print( 5 == 5 )   # आउटपुट True है।

print( 5 == '5' )   # आउटपुट False है।

print( 5 != '5' )   # आउटपुट True है।

print( 5 != 6 )   # आउटपुट True है।

print( 5 < 6 )   # आउटपुट True है।

    हालाँकि पायथन एक ढीली डेटा-प्रकार प्रोग्रामिंग भाषा है, यह PHP और जावास्क्रिप्ट से अलग है। Python में ढीली तुलना या सख्त तुलना जैसी कोई चीज़ नहीं है । अन्य तुलना ऑपरेटर, यानी >, <=, >= उपरोक्त उदाहरणों के अनुरूप अपेक्षित काम करते हैं।

लॉजिकल ऑपरेटर्स

    PHP और जावास्क्रिप्ट जैसे कोई &&,   ||   और   !   ऑपरेटर नहीं हैं। पायथन में, आरक्षित कीवर्ड, and,   or,   not   तार्किक ऑपरेटरों के रूप में उपयोग किए जाते हैं। जब दोनों ऑपरेंड के शाब्दिक या अभिव्यक्ति का मूल्यांकन True किया जाता है, तो and तार्किक तुलना में आउटपुट True होता है, अन्यथा False वापस कर दिया जाएगा।

    जब दो ऑपरेंड में से किसी एक का मूल्यांकन True किया जाता है, तो or तार्किक तुलना में आउटपुट True होता है। जब दोनों ऑपरेंड का मूल्यांकन False के रूप में किया जाता है, तभी or तार्किक तुलना में False लौटाया जाएगा। जब किसी ऑपरेंड से पहले not लॉजिकल ऑपरेटर का उपयोग किया जाता है तो उसका मान उसके विपरीत में बदल जाता है। आइए तार्किक ऑपरेटरों के कुछ उदाहरण देखें:

print( True and True )   # आउटपुट True है।

print( False and True )   # आउटपुट False है।

print( False and False )   # आउटपुट False है।

print( True or True )   # आउटपुट True है।

print( False or True )   # आउटपुट True है।

print( False or False )   # आउटपुट False

print( not True )   # आउटपुट False है।

print( not False )   # आउटपुट True है।

बिटवाइज़ ऑपरेटर्स

    हालाँकि बिटवाइज़ ऑपरेटर &, |, और ^ तुलना पर बूलियन परिणाम भी आउटपुट कर सकते हैं, लेकिन ऐसा करना उचित नहीं है।

बिटवाइज़ and जब दोनों ऑपरेंड का बाइनरी मान 1 हो तो 1 लौटाता है, अन्यथा 0 लौटाता है

print( False & False )   # आउटपुट False है।

print( True & False )   # आउटपुट False है।

print( False & True )   # आउटपुट False है।

print( True & True )   # आउटपुट True है।

बिटवाइज़ or जब दोनों ऑपरेंड्स में से एक का भी बाइनरी मान 1 हो, तो 1 लौटाता है। जब दोनों ऑपरेंड का बाइनरी मान 0 होता है, तो 0 लौटाता है।

print( True | True )   # आउटपुट True है।

print( False | True )   # आउटपुट True है।

print( True | False )   # आउटपुट True है।

print( False | False )   # आउटपुट False है।

बिटवाइज़ xor जब दोनों ऑपरेंड समान बाइनरी मान हों तो 0 लौटाता है, अन्यथा 1 लौटाता है।

print( False ^ False )   # आउटपुट False है।

print( True ^ True )   # आउटपुट False है।

print( False ^ True )   # आउटपुट True है।

print( True ^ False )   # आउटपुट True है।

बिटवाइज़ not ऑपरेंड के बाइनरी मान को फ़्लिप करता है।

print( ~ True )   # आउटपुट -2 है।

print( ~ False )   # आउटपुट -1 है।

पहचान (Identity) संचालक

    is यह जांचता है कि क्या दो वेरिएबल नाम एक ही ऑब्जेक्ट के हैं (डेटा-प्रकार नहीं), और is not का उपयोग यह जांचने के लिए किया जाता है कि क्या वे अलग-अलग ऑब्जेक्ट हैं। id() फ़ंक्शन का उपयोग किसी ऑब्जेक्ट की मेमोरी लोकेशन जानने के लिए किया जाता है। id() एक अंतर्निहित फ़ंक्शन है, जो ऑब्जेक्ट की पहचान (identity) लौटाता है। निम्नलिखित उदाहरण में, आप दोनों x और y की id() देख सकते हैं कि वे दोनों समान हैं।

x = 5
y = 5
print( id(x) )
print( id(y) )
print( x is y ) # आउटपुट निम्नलिखित है।

2018911322480
2018911322480
True

print( 5 is 5 )   # निम्नलिखित त्रुटि के साथ आउटपुट True है:

C:\xampp\htdocs\python2023>py new.py
C:\xampp\htdocs\python2023\new.py:4: SyntaxWarning: "is" with a literal. Did you mean "=="?
    print( 5 is 5 )
True

    नीचे दिए गए उदाहरण में, आप देख सकते हैं कि दोनों वेरिएबल नाम a और b समान मूल्य और समान डेटा-प्रकार है, जो कि list है, लेकिन उनका id() अलग है और इसलिए, जब is ऑपरेटर के साथ तुलना किया जाता है, आउटपुट False है। इसके अलावा, जब दोनों a और b is not ऑपरेटर के साथ तुलना किया जाता है, आउटपुट True है।

a = [1, 2, 3]
b = [1, 2, 3]
print( id(a) )
print( id(b) )
print( a is b )

    उपरोक्त उदाहरण निम्नानुसार आउटपुट करता है:

2290722944192
2290722878400
False

print( a is not b )   # आउटपुट True है।

सदस्यता (Membership) संचालक

    in और not in ऑपरेटरों का उपयोग यह जांचने के लिए किया जाता है कि किसी चर नाम का मान अनुक्रम (sequence) डेटा-प्रकार, उदाहरण के लिए, स्ट्रिंग, सूची, आदि में है या नहीं।

x = 5   # integer data-type
y = [1, 2, 3, 4, 5]   # list data-type
print( x in y )   # Outputs True
print( id(x) )
print( id( y[4] ) )   # 'y' के बाद वर्ग कोष्ठक में [4], 5 की सूचकांक (index) (अंतिम आइटम) संख्या है

    उपरोक्त उदाहरण का आउटपुट जैसा कि नीचे दिखाया गया है:

True
2920055505264
2920055505264

    पायथन में, एक शाब्दिक मान, उदाहरण के लिए, 5 चाहे सीधे एक चर नाम को सौंपा गया हो या किसी अनुक्रम (sequence) के किसी आइटम को सौंपा गया हो, केवल मेमोरी में एक स्थान होता है, जैसा कि ऊपर दिखाया गया है। इसलिए, जब id() फ़ंक्शन द्वारा 5 की पहचान (identity) की जाँच की जाती है, तो id(x) और id( y[4] ) दोनों एक मेमोरी स्थान का समान संख्यात्मक मान आउटपुट करते हैं।

    जब आप कोई कोड चलाते/निष्पादित करते हैं, यानी उपरोक्त उदाहरणों में से कोई भी, तो शाब्दिक रूप से निर्दिष्ट मेमोरी स्थान (रैम) अस्थायी होता है, और हर बार बदला जाएगा। इसलिए, आपको शाब्दिक मूल्य के स्मृति स्थानों के लिए अलग-अलग मूल्य मिलेंगे। आशा है, आप इस अवधारणा को समझ गए होंगे कि कैसे पायथन इंटरप्रेटर रैम में वेरिएबल्स को संग्रहीत करता है।


Leave a Comment: