पाइथन में if स्टेटमेंट के साथ कंडीशनल ब्रांचिंग की व्याख्या करें।
- यदि कथन की मूल बातें (यदि, elif, अन्य)
- तुलना ऑपरेटरों, आदि के साथ शर्तों को निर्दिष्ट करें।
- संख्या, सूची आदि द्वारा शर्तों को निर्दिष्ट करें।
- तार्किक ऑपरेटरों के साथ कई शर्तें या निषेध निर्दिष्ट करें (और, या, नहीं)
- नई लाइनों और कई लाइनों पर सशर्त अभिव्यक्ति
एक टर्नरी ऑपरेटर भी है जो एक पंक्ति में एक सशर्त शाखा का वर्णन करता है। निम्नलिखित लेख देखें।
यदि कथन की मूल बातें (यदि, elif, अन्य)
if कथन का मूल रूप इस प्रकार है
if Conditional expression 1:
`Processing to be performed if Expression 1 is True.`
elif Conditional expression 2:
`Processing to be performed when expression 1 is false and expression 2 is true.`
elif Expression 3:
`Process when expression 1 and 2 are false and expression 3 is true.`
...
else:
`Processing when all conditionals are false.`
“एलिफ” सी और अन्य भाषाओं में “अन्य अगर” से मेल खाता है, और “एलिफ” की कोई भी संख्या हो सकती है।
यदि केवल एक सशर्त अभिव्यक्ति या प्रसंस्करण है जब असत्य आवश्यक नहीं है, तो “एलिफ़” और “अन्य” ब्लॉकों को छोड़ा जा सकता है।
तुलना ऑपरेटरों, आदि के साथ शर्तों को निर्दिष्ट करें।
एक ऑपरेशन के साथ शर्त निर्दिष्ट करें जो एक बूल प्रकार (सत्य, गलत) देता है, जैसे तुलना ऑपरेटर।
पायथन तुलना ऑपरेटर इस प्रकार हैं
ऑपरेटर | नतीजा |
---|---|
x < y | सच है अगर x, y से कम है |
x <= y | सत्य यदि x, y से छोटा या बराबर है |
x > y | सत्य यदि x, y से बड़ा है |
x >= y | सत्य यदि x, y से बड़ा या उसके बराबर है |
x == y | सच है अगर x और y मान बराबर हैं |
x != y
x is y
x is not y
x in y
x not in y
उदाहरण। सुविधा के लिए, इसे def कथन के साथ एक फ़ंक्शन के रूप में परिभाषित किया गया है।
def if_test(num):
if num > 100:
print('100 < num')
elif num > 50:
print('50 < num <= 100')
elif num > 0:
print('0 < num <= 50')
elif num == 0:
print('num == 0')
else:
print('num < 0')
if_test(1000)
# 100 < num
if_test(70)
# 50 < num <= 100
if_test(0)
# num == 0
if_test(-100)
# num < 0
निम्नलिखित को इस तरह से लिखा जा सकता है जो पायथन के लिए अद्वितीय है। विवरण के लिए निम्न आलेख देखें।a < x < b
def if_test2(num):
if 50 < num < 100:
print('50 < num < 100')
else:
print('num <= 50 or num >= 100')
if_test2(70)
# 50 < num < 100
if_test2(0)
# num <= 50 or num >= 100
#ERROR!
!=
उपरोक्त मूल्यों की तुलना है; वस्तु पहचान की तुलना करने के लिए, निम्नलिखित का उपयोग करें
is
is not
उदाहरण के लिए, एक पूर्णांक और एक फ़्लोटिंग-पॉइंट संख्या की तुलना करते समय, “==” मान समान होने पर सत्य लौटाता है, लेकिन “है” झूठा रिटर्न देता है क्योंकि वे अलग-अलग ऑब्जेक्ट हैं।
i = 10
print(type(i))
# <class 'int'>
f = 10.0
print(type(f))
# <class 'float'>
print(i == f)
# True
print(i is f)
# False
यह स्थिति बनाना भी संभव है कि सूची या स्ट्रिंग में एक विशिष्ट तत्व (चरित्र) है या नहीं।
in
:शामिल करनाnot in
:शामिल नहीं
def if_test_in(s):
if 'a' in s:
print('a is in string')
else:
print('a is NOT in string')
if_test_in('apple')
# a is in string
if_test_in('melon')
# a is NOT in string
संख्या, सूची आदि द्वारा शर्तों को निर्दिष्ट करें।
if कथन की सशर्त अभिव्यक्ति एक संख्या, सूची या अन्य वस्तु हो सकती है जो बूल (सत्य, गलत) प्रकार की नहीं है।
if 10:
print('True')
# True
if [0, 1, 2]:
print('True')
# True
पायथन के सशर्त अभिव्यक्ति में अगर कथन, निम्नलिखित वस्तुओं को गलत माना जाता है।
- स्थिरांक को असत्य के रूप में परिभाषित किया गया है:
None
,false
- संख्यात्मक प्रकार में शून्य:
0
,0
,0j
,Decimal(0)
,Fraction(0, 1)
- खाली क्रम या संग्रह:
'
,()
,[]
,{}
,set()
,range(0)
Truth Value Testing — Built-in Types — Python 3.10.4 Documentation
शून्य, खाली स्ट्रिंग्स, सूचियों आदि का प्रतिनिधित्व करने वाली संख्याएं झूठी मानी जाती हैं; अन्य सभी सत्य माने जाते हैं।
ऑब्जेक्ट को कैसे आंका जाता है, इसे बूल () से चेक किया जा सकता है।
print(bool(10))
# True
print(bool(0.0))
# False
print(bool([]))
# False
print(bool('False'))
# True
उदाहरण के लिए, सूची खाली होने पर इसका उपयोग केवल प्रक्रिया को लिखने के लिए किया जा सकता है।
def if_test_list(l):
if l:
print('list is NOT empty')
else:
print('list is empty')
if_test_list([0, 1, 2])
# list is NOT empty
if_test_list([])
# list is empty
ध्यान दें कि स्ट्रिंग ‘गलत’ भी सत्य होगी, क्योंकि जैसा कि ऊपर के उदाहरण में दिखाया गया है, कोई भी स्ट्रिंग जो स्ट्रिंग में खाली नहीं है, सत्य होगी।’ किसी विशिष्ट स्ट्रिंग जैसे ‘ट्रू’ या ‘गलत’ को 1,0 में बदलने के लिए, distutils.util मॉड्यूल में strtobool() का उपयोग करें।
तार्किक ऑपरेटरों के साथ कई शर्तें या निषेध निर्दिष्ट करें (और, या, नहीं)
लॉजिकल ऑपरेटर्स (और, या, नहीं) का इस्तेमाल लॉजिकल कॉम्बिनेशन, लॉजिकल डिसजंक्शन और कई स्थितियों को नकारने के लिए किया जा सकता है।
ऑपरेटर | परिणाम (यदि कथन की सशर्त अभिव्यक्ति में) |
---|---|
x and y | सत्य है यदि x और y दोनों सत्य हैं |
x or y | सत्य यदि या तो x या y सत्य है |
not x | असत्य यदि x सत्य है, सत्य है यदि x असत्य है |
def if_test_and_not(num):
if num >= 0 and not num % 2 == 0:
print('num is positive odd')
else:
print('num is NOT positive odd')
if_test_and_not(5)
# num is positive odd
if_test_and_not(10)
# num is NOT positive odd
if_test_and_not(-10)
# num is NOT positive odd
वास्तव में, “x और y” और “x या y” सही या गलत नहीं, बल्कि x या y लौटाते हैं। जब तक वे सशर्त अभिव्यक्तियों में if कथनों में उपयोग किए जाते हैं, तब तक उनके बारे में चिंता करने की कोई आवश्यकता नहीं है, क्योंकि वे या तो सही या गलत का मूल्यांकन करते हैं। विवरण के लिए निम्न आलेख देखें।
इसका उपयोग और और या एक से अधिक बार करना संभव है।
def if_test_and_not_or(num):
if num >= 0 and not num % 2 == 0 or num == -10:
print('num is positive odd or -10')
else:
print('num is NOT positive odd or -10')
if_test_and_not_or(5)
# num is positive odd or -10
if_test_and_not_or(10)
# num is NOT positive odd or -10
if_test_and_not_or(-10)
# num is positive odd or -10
नई लाइनों और कई लाइनों पर सशर्त अभिव्यक्ति
जब कई सशर्त अभिव्यक्तियों को “और” या “या” से जोड़कर उपयोग किया जाता है और प्रत्येक पंक्ति लंबी हो जाती है, तो कभी-कभी सशर्त अभिव्यक्ति को तोड़ना और इसे कई पंक्तियों पर लिखना आवश्यक होता है।
बैकस्लैश का उपयोग करके या पूरी लाइन को कोष्ठक में संलग्न करके एक लाइन ब्रेक बनाया जा सकता है।
def if_test_and_backslash(num):
if num >= 0 \
and not num % 2 == 0:
print('num is positive odd')
else:
print('num is NOT positive odd')
if_test_and_backslash(5)
# num is positive odd
def if_test_and_brackets(num):
if (num >= 0
and not num % 2 == 0):
print('num is positive odd')
else:
print('num is NOT positive odd')
if_test_and_brackets(5)
# num is positive odd
आप जितनी बार चाहें लाइन को तोड़ने के लिए बैकस्लैश का उपयोग कर सकते हैं। इसी तरह, आप कोष्ठक के भीतर कितनी भी बार एक पंक्ति को तोड़ सकते हैं। कोई इंडेंटेशन सीमा नहीं है।
ध्यान दें कि यह एक ऐसी तकनीक है जिसका उपयोग पायथन कोड में कहीं भी किया जा सकता है, न कि केवल कथनों में।