Python के `truthy` और `falsy`
यह लेख Python के truthy
और falsy
को समझाता है।
YouTube Video
Python के truthy
और falsy
truthy
और falsy
की परिभाषा
Python में, सशर्त अभिव्यक्तियों में मूल्यांकन किए गए ऑब्जेक्ट्स को 'True' या 'False' माना जाता है। Truthy
उन ऑब्जेक्ट्स को संदर्भित करता है जो 'True' के रूप में मूल्यांकित होते हैं, और falsy
उन्हें जो 'False' के रूप में मूल्यांकित होते हैं। इन मूल्यांकनों का अक्सर उपयोग सशर्त शाखाओं जैसे if
कथनों या while
लूप्स में किया जाता है। साथ ही, bool()
फ़ंक्शन किसी भी ऑब्जेक्ट को लेता है और उसका बूलियन मान लौटाता है।
Falsy
(वे ऑब्जेक्ट्स जो False के रूप में मूल्यांकित होते हैं)
Python में, निम्नलिखित ऑब्जेक्ट्स को falsy
माना जाता है:।
-
असत्य
-
शून्य
-
संख्यात्मक शून्य मान
- उदाहरण:
0
,0.0
- उदाहरण:
-
खाली अनुक्रम प्रकार (जैसे खाली लिस्ट, ट्यूपल या स्ट्रिंग्स)
- उदाहरण:
[]
,()
,""
- उदाहरण:
-
रिक्त शब्दकोश
- उदाहरण:
{}
- उदाहरण:
-
रिक्त सेट
- उदाहरण:
set()
- उदाहरण:
इन ऑब्जेक्ट्स को 'झूठा' माना जाता है जब इन्हें if
स्टेटमेंट की शर्त में इस्तेमाल किया जाता है। उदाहरण के लिए, आप इस तरह कोड लिख सकते हैं।
1if not []:
2 print("The list is falsy.")
- इस कोड में, सूची
[]
खाली है, इसलिए इसेझूठा
माना जाता है, औरprint
स्टेटमेंट निष्पादित होता है।
Truthy
(वे ऑब्जेक्ट्स जो True के रूप में मूल्यांकित होते हैं)
वे ऑब्जेक्ट्स जो falsy
नहीं माने जाते उन्हें truthy
माना जाता है।
-
शून्य के अलावा संख्याएं (पूर्णांक, फ्लोटिंग-पॉइंट संख्याएं)
- उदाहरण:
1
,3.14
,-100
- उदाहरण:
-
गैर-खाली अनुक्रम प्रकार (सूचियां, ट्यूपल, स्ट्रिंग्स, आदि)
- उदाहरण:
[1, 2, 3]
,(1, 2)
,"Hello"
- उदाहरण:
-
गैर-खाली शब्दकोश (डिक्शनरी)
- उदाहरण:
{"key": "value"}
- उदाहरण:
-
गैर-खाली सेट्स
- उदाहरण:
{1, 2, 3}
- उदाहरण:
truthy
माने जाने वाले ऑब्जेक्ट्स, जब if
स्टेटमेंट की शर्त में उपयोग किए जाते हैं, तो वे 'True' के रूप में मूल्यांकित होते हैं। उदाहरण के लिए, आप इस तरह कोड लिख सकते हैं।
1if [1, 2, 3]:
2 print("The list is truthy.")
- ऊपर दिए गए कोड में, चूंकि लिस्ट
[1, 2, 3]
खाली नहीं है, इसेtruthy
के रूप में मूल्यांकित किया जाता है औरprint
स्टेटमेंट निष्पादित होता है।
bool()
फ़ंक्शन के साथ बूलियन मान का मूल्यांकन करना
आप किसी भी ऑब्जेक्ट के बूलियन मान का मूल्यांकन bool()
फ़ंक्शन का उपयोग करके कर सकते हैं।
1# Examples of falsy values
2print("False is", "truthy" if bool(False) else "falsy")
3print("0 is", "truthy" if bool(0) else "falsy")
4print('"" is', "truthy" if bool("") else "falsy")
5print("None is", "truthy" if bool(None) else "falsy")
6print("[] is", "truthy" if bool([]) else "falsy")
7
8# Examples of truthy values
9print("1 is", "truthy" if bool(1) else "falsy")
10print('"hello" is', "truthy" if bool("hello") else "falsy")
11print('" " (space) is', "truthy" if bool(" ") else "falsy")
12print('"0" is', "truthy" if bool("0") else "falsy")
- यह कोड दिखाता है कि विभिन्न मानों का ट्रूथ मान कैसे मूल्यांकित किया जाता है। उदाहरण के लिए, संख्यात्मक मान
0
और खाली स्ट्रिंग कोFalse
माना जाता है, जबकि एक स्पेस या स्ट्रिंग"0"
कोTrue
माना जाता है।
सत्यत्मक
और झूठा
का उपयोग करना
सत्यत्मक
और झूठा
का उपयोग करके, कोड अधिक संक्षिप्त और सहज रूप से लिखा जा सकता है। विशेष रूप से, if
स्टेटमेंट अक्सर स्पष्ट तुलना के बिना जांचे जा सकते हैं ताकि वे छोटे हो जाएं। उदाहरण के लिए, निम्न दो कोड टुकड़े समान रूप से व्यवहार करते हैं, लेकिन पहला अधिक संक्षिप्त है।
1my_list = [1]
2
3# Explicit comparison
4if my_list != []:
5 print("The list is not empty.")
6
7# Using truthy/falsy
8if my_list:
9 print("The list is not empty.")
ऊपर दिए गए उदाहरण में, आप देख सकते हैं कि जब तक my_list
खाली सूची नहीं है, इसे सत्यत्मक
माना जाता है, जिससे स्पष्ट तुलना की आवश्यकता समाप्त हो जाती है।
सत्यत्मक
और झूठा
के साथ डिज़ाइन करना
सत्यत्मक
और झूठा
की अवधारणाओं का प्रभावी रूप से उपयोग करके, आप कोड की पठनीयता और दक्षता बढ़ा सकते हैं। ये डिफ़ॉल्ट मान सेट करने, वेरिएबल की वैधता जांचने और इनपुट सत्यापन के लिए विशेष रूप से उपयोगी हैं। उदाहरण के लिए, यदि आप अपेक्षा करते हैं कि तर्क के रूप में शून्य
या एक खाली सूची पास की जाएगी, तो आप इस तरह कोड लिख सकते हैं।
1def process_data(data=None):
2 data = data or []
3 print(data)
4
5process_data() # An empty list is used by default.
- इस कोड में, यदि
data
का मानNone
है, तो एक खाली लिस्ट[]
को डिफ़ॉल्ट मान के रूप में सेट किया जाता है। इस प्रकार,truthy
औरfalsy
का उपयोग करके आप डिफ़ॉल्ट मान को संक्षिप्त रूप से सेट कर सकते हैं।
अनपेक्षित व्यवहार से बचने के लिए ध्यान देने वाले बिंदु
हालांकि, truthy
और falsy
मानों का उपयोग करने वाला कोड संक्षिप्त और सुविधाजनक हो सकता है, लेकिन ध्यान दें कि इससे अनपेक्षित व्यवहार हो सकता है। उदाहरण के लिए, इस कोड में, न केवल जब data
का मान None
हो, बल्कि जब भी उसका मान False
के रूप में मूल्यांकित होने वाला कोई भी मान हो, जैसे कि खाली स्ट्रिंग या 0
, तब भी उसे डिफ़ॉल्ट खाली लिस्ट []
से बदल दिया जाएगा। इसी कारण, जब एक कठोर शर्त की आवश्यकता हो, जैसे कि केवल तब इनिशियलाइज़ करना जब मान None
हो, तो यह सलाह दी जाती है कि value is None:
जैसी स्पष्ट शर्त का उपयोग करें। स्थिति के अनुसार, संक्षिप्तता और कठोरता के बीच संतुलन बनाए रखना डिज़ाइन के लिए महत्वपूर्ण है।
1def process_data(data=None):
2 if data is None:
3 data = []
4 print(data)
5
6process_data() # An empty list is used by default.
7process_data(0) # 0 is printed because it's not None.
- इस कोड में,
data
को एक खाली सूची से केवल तब प्रारंभित किया जाता है जब वहNone
हो, जबकि अन्य झूठे मान जैसे0
को वैसा ही छोड़ा जाता है।
कस्टम ऑब्जेक्ट्स में बूलियन मान नियंत्रित करना
यहां तक कि अपनी खुद की क्लासों में भी आप __bool__()
या __len__()
को परिभाषित करके किसी इंस्टेंस के बूलियन मान को नियंत्रित कर सकते हैं।
1class MyContainer:
2 def __init__(self, items):
3 self.items = items
4
5 def __len__(self):
6 return len(self.items)
7
8box = MyContainer([])
9print(bool(box)) # False
10
11box.items.append("item")
12print(bool(box)) # True
- इस कोड में,
__len__()
मेथड के कारण कंटेनर खाली होने परFalse
और उसमें एलिमेंट्स होने परTrue
के रूप में मूल्यांकित होता है।
निष्कर्ष
Python में truthy
और falsy
की अवधारणाएँ संक्षिप्त परिस्थितीय अभिव्यक्तियों को लिखने और कोड को अधिक सहज बनाने के लिए बहुत महत्वपूर्ण हैं। इनको समझना और सही ढंग से उपयोग करना कोड की पठनीयता और दक्षता को काफी हद तक बढ़ा सकता है।
आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।