पायथनमधील if स्टेटमेंटसह सशर्त शाखा स्पष्ट करा.
- if स्टेटमेंट्सची मूलभूत माहिती (if, elif, else)
- तुलना ऑपरेटर इ. सह अटी निर्दिष्ट करा.
- संख्या, यादी इत्यादींनुसार अटी निर्दिष्ट करा.
- तार्किक ऑपरेटरसह एकाधिक अटी किंवा नकार निर्दिष्ट करा (आणि, किंवा, नाही)
- नवीन ओळी आणि एकाधिक ओळींवर सशर्त अभिव्यक्ती
एक तिरंगी ऑपरेटर देखील आहे जो एका ओळीत सशर्त शाखेचे वर्णन करतो. पुढील लेख पहा.
if स्टेटमेंट्सची मूलभूत माहिती (if, elif, else)
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.`
“एलिफ” हे C आणि इतर भाषांमधील “else if” शी संबंधित आहे आणि “elifs” ची कितीही संख्या असू शकते.
फक्त एक सशर्त अभिव्यक्ती किंवा प्रक्रिया असत्य असल्यास, आवश्यक नसताना, “एलिफ” आणि “अन्य” ब्लॉक वगळले जाऊ शकतात.
तुलना ऑपरेटर इ. सह अटी निर्दिष्ट करा.
ऑपरेशनसह कंडिशन निर्दिष्ट करा जे bool प्रकार (सत्य, असत्य) परत करते, जसे की तुलना ऑपरेटर.
पायथन तुलना ऑपरेटर खालीलप्रमाणे आहेत
ऑपरेटर | परिणाम |
---|---|
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
उदाहरणार्थ, पूर्णांक आणि फ्लोटिंग-पॉइंट नंबरची तुलना करताना, “==” मूल्ये समतुल्य असल्यास सत्य मिळवते, परंतु “is” चुकीचे मिळवते कारण ते भिन्न वस्तू आहेत.
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 स्टेटमेंटची सशर्त अभिव्यक्ती ही संख्या, सूची किंवा इतर ऑब्जेक्ट असू शकते जी bool (सत्य, असत्य) प्रकारची नाही.
if 10:
print('True')
# True
if [0, 1, 2]:
print('True')
# True
Python if स्टेटमेंटच्या सशर्त अभिव्यक्तीमध्ये, खालील वस्तू खोट्या मानल्या जातात.
- असत्य म्हणून परिभाषित केलेले स्थिरांक:
None
,false
- अंकीय प्रकारात शून्य:
0
,0
,0j
,Decimal(0)
,Fraction(0, 1)
- रिक्त क्रम किंवा संग्रह:
'
,()
,[]
,{}
,set()
,range(0)
Truth Value Testing — Built-in Types — Python 3.10.4 Documentation
शून्य, रिक्त तार, याद्या इत्यादी दर्शविणाऱ्या संख्या खोट्या मानल्या जातात; इतर सर्व खरे मानले जातात.
ऑब्जेक्टचा न्याय कसा केला जातो हे bool() द्वारे तपासले जाऊ शकते.
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
लक्षात घ्या की स्ट्रिंग ‘फॉल्स’ देखील सत्य असेल, कारण वरील उदाहरणात दाखवल्याप्रमाणे, स्ट्रिंगमध्ये रिक्त नसलेली कोणतीही स्ट्रिंग सत्य असेल.’ विशिष्ट स्ट्रिंग जसे की ‘True’ किंवा ‘False’ 1,0 मध्ये रूपांतरित करण्यासाठी distutils.util मॉड्यूलमध्ये strtobool() वापरा.
तार्किक ऑपरेटरसह एकाधिक अटी किंवा नकार निर्दिष्ट करा (आणि, किंवा, नाही)
लॉजिकल ऑपरेटर (आणि, किंवा, नाही) तार्किक संयोग, तार्किक वियोग आणि एकाधिक अटींचे नकार हाताळण्यासाठी वापरले जाऊ शकतात.
ऑपरेटर | (परिणाम (if विधानाच्या सशर्त अभिव्यक्तीमध्ये) |
---|---|
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. जोपर्यंत ते इफ स्टेटमेंटमध्ये सशर्त अभिव्यक्तींमध्ये वापरले जातात, त्यांच्याबद्दल काळजी करण्याची गरज नाही, कारण ते खरे किंवा असत्य असे मूल्यमापन करतात. तपशीलांसाठी पुढील लेख पहा.
हे वापरणे शक्य आहे आणि आणि किंवा एकापेक्षा जास्त वेळा.
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
तुम्हाला पाहिजे तितक्या वेळा ओळ खंडित करण्यासाठी तुम्ही बॅकस्लॅश वापरू शकता. त्याचप्रमाणे, तुम्ही कंसात कितीही वेळा ओळ खंडित करू शकता. इंडेंटेशन मर्यादा नाही.
लक्षात घ्या की हे एक तंत्र आहे जे पायथन कोडमध्ये कुठेही वापरले जाऊ शकते, फक्त इफ स्टेटमेंटमध्ये नाही.