पायथन स्विच स्टेटमेंट

परिचय

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

इस लेख में, हम यह पता लगाएंगे कि पायथन में स्विच स्टेटमेंट का उपयोग कैसे करें और अन्य नियंत्रण संरचनाओं पर इसके फायदों पर चर्चा करें। चाहे आप पायथन में नए हों या एक अनुभवी डेवलपर, स्विच स्टेटमेंट आपको क्लीनर, अधिक कुशल कोड लिखने में मदद कर सकता है।

v3.10 से पहले

पायथन स्विच स्टेटमेंट भाषा में मूल रूप से उपलब्ध होने से पहले, प्रोग्रामर को समान कार्यक्षमता प्राप्त करने के लिए अन्य नियंत्रण संरचनाओं का उपयोग करना पड़ता था। एक सामान्य दृष्टिकोण यदि-अन्यथा कथनों की एक श्रृंखला का उपयोग करना था, जिसमें कोड की प्रत्येक शाखा परीक्षण किए जा रहे चर के एक अलग मूल्य के साथ जुड़ी हुई थी।

उदाहरण के लिए, निम्नलिखित कोड पर विचार करें:

value = "foo"

if value == "foo":
    print("foo was selected")
elif value == "bar":
    print("bar was selected")
else:
    print("Nothing valid was selected")

इस कोड में, हम वेरिएबल के मान के आधार पर कोड की किस शाखा को निष्पादित करना है यह निर्धारित करने के लिए if-else स्टेटमेंट का उपयोग कर रहे हैं value. अगर value "फू" के बराबर है, कोड की पहली शाखा निष्पादित की जाएगी। अगर value "बार" के बराबर है, कोड की दूसरी शाखा निष्पादित की जाएगी। अन्यथा, कोड में else ब्लॉक निष्पादित किया जाएगा.

हालांकि यह दृष्टिकोण काम करता है, लेकिन जैसे-जैसे चर के लिए संभावित मानों की संख्या बढ़ती है, यह जल्दी ही बोझिल हो सकता है। इसके अलावा, इससे कोड को पढ़ना और समझना मुश्किल हो सकता है।

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

उदाहरण के लिए, निम्नलिखित कोड पर विचार करें:

value = "foo"

switch = {
    "foo": lambda: print("foo was selected"),
    "bar": lambda: print("bar was selected"),
    "default": lambda: print("Nothing valid was selected"),
}

switch.get(value, "default")()

इस कोड में हमने एक शब्दकोष परिभाषित किया है जिसका नाम है switch, चर के संभावित मानों को दर्शाने वाली कुंजियों के साथ value. प्रत्येक कुंजी के लिए, हमने मान के रूप में एक लैम्ब्डा फ़ंक्शन निर्दिष्ट किया है, जिसमें कोड की संबंधित शाखा शामिल है। कोड की उपयुक्त शाखा को निष्पादित करने के लिए, हम इसका उपयोग करते हैं get() शब्दकोश की विधि, जो हमें उपयोग करने के लिए एक डिफ़ॉल्ट मान निर्दिष्ट करने की अनुमति देती है यदि दी गई कुंजी शब्दकोश में मौजूद नहीं है।

हालाँकि यह दृष्टिकोण if-else स्टेटमेंट्स का उपयोग करने की तुलना में अधिक लचीला और कॉम्पैक्ट है, फिर भी इसे पढ़ना और समझना मुश्किल हो सकता है, खासकर यदि प्रत्येक शाखा में कोड जटिल है। इसके अलावा, इसमें लैम्ब्डा फ़ंक्शन के उपयोग की आवश्यकता होती है, जो कुछ प्रोग्रामर के लिए भ्रमित करने वाला हो सकता है। हम इस विधि का उपयोग करने का सुझाव नहीं देते हैं जब तक कि किसी कारण से आप इस लेख में अन्य विधियों का उपयोग नहीं कर सकते।

Python v3.10 में Python स्विच स्टेटमेंट की शुरूआत के साथ, प्रोग्रामर के पास अब किसी दिए गए चर या अभिव्यक्ति के मूल्य के आधार पर अपने प्रोग्राम के प्रवाह को नियंत्रित करने का अधिक सुविधाजनक और सहज तरीका है। अगले भाग में, हम यह पता लगाएंगे कि पायथन में वास्तविक स्विच स्टेटमेंट का उपयोग कैसे करें।

RSI match/case वक्तव्य (v3.10 के बाद)

Python v3.10 के बाद, स्विच स्टेटमेंट को इसका उपयोग करके नियंत्रित किया जाता है match कीवर्ड. इस कीवर्ड का उपयोग पैटर्न-मिलान अभिव्यक्ति बनाने के लिए किया जाता है, जो आपको पैटर्न की श्रृंखला के विरुद्ध किसी दिए गए चर या अभिव्यक्ति के मूल्य का परीक्षण करने की अनुमति देता है। यदि कोई मिलान पाया जाता है, तो कोड की संबंधित शाखा निष्पादित की जाती है।

उदाहरण के लिए, निम्नलिखित कोड पर विचार करें:

value = "foo"

match value:
    case "foo":
        print("foo was selected")
    case "bar":
        print("bar was selected")
    case _:
        print("Nothing valid was selected")

सर्वोत्तम प्रथाओं, उद्योग-स्वीकृत मानकों और शामिल चीट शीट के साथ, Git सीखने के लिए व्यावहारिक मार्गदर्शिका देखें। Googling Git कमांड को रोकें और वास्तव में सीखना यह!

इस कोड में, हम इसका उपयोग कर रहे हैं match एक पैटर्न-मिलान अभिव्यक्ति बनाने के लिए कीवर्ड, जो चर के मूल्य का परीक्षण करता है value पैटर्न की एक श्रृंखला के विरुद्ध. अगर value "फू" के बराबर है, कोड की पहली शाखा निष्पादित की जाएगी। अगर value "बार" के बराबर है, कोड की दूसरी शाखा निष्पादित की जाएगी। अन्यथा, अन्य ब्लॉक में कोड निष्पादित किया जाएगा।

असफल

पायथन में स्विच स्टेटमेंट और अन्य भाषाओं में पारंपरिक स्विच स्टेटमेंट के बीच एक महत्वपूर्ण अंतर यह है कि पायथन match कथन फ़ॉल-थ्रू का समर्थन नहीं करता है. दूसरे शब्दों में, एक बार जब कोई मिलान मिल जाता है और कोड की संबंधित शाखा निष्पादित हो जाती है, तो match अभिव्यक्ति समाप्त होती है और कोई अन्य कोड नहीं है match कथन निष्पादित किया जाता है. अन्य भाषाओं में, यह आमतौर पर इसका उपयोग करके हासिल किया जाता है break कीवर्ड, जिसकी यहां आवश्यकता या समर्थन नहीं है।

यदि आप पारंपरिक स्विच स्टेटमेंट में फ़ॉल-थ्रू के समान व्यवहार प्राप्त करना चाहते हैं, तो आप इसका उपयोग कर सकते हैं | एकाधिक मामलों का मिलान करने के लिए ऑपरेटर। यह ऑपरेटर आपको एक ही समय में कई पैटर्न निर्दिष्ट करने की अनुमति देता है case, और उस शाखा के निष्पादन को ट्रिगर करने के लिए किसी भी पैटर्न का मिलान किया जा सकता है।

उदाहरण के लिए, निम्नलिखित कोड पर विचार करें:

value = "y"

match value:
    case "yes" | "y":
        print("The user confirmed")
    case _:
        print("The user denied")

यहाँ, यदि का मान value "हाँ" के बराबर है or "y", कोड की पहली शाखा निष्पादित की जाएगी। यह पारंपरिक स्विच स्टेटमेंट में फॉल-थ्रू व्यवहार के बराबर है।

डिफ़ॉल्ट्स

जैसा कि आपने शायद उपरोक्त उदाहरणों से देखा होगा, "डिफ़ॉल्ट" मामले को अंडरस्कोर का उपयोग करके नियंत्रित किया जाता है (_). इसे "वाइल्डकार्ड" माना जाता है और यह सभी मानों से मेल खाता है। यदि पिछले मामलों में से कोई एक मान से मेल खाता है, तो डिफ़ॉल्ट कोड शाखा को छोड़ दिया जाता है और निष्पादित नहीं किया जाता है।

निष्कर्ष

जैसा कि आप देख सकते हैं, पायथन मैच (उर्फ "स्विच") स्टेटमेंट आपके प्रोग्राम के प्रवाह को नियंत्रित करने का एक शक्तिशाली और सुविधाजनक तरीका प्रदान करता है। चाहे आप पायथन में नए हों या एक अनुभवी डेवलपर, स्विच स्टेटमेंट आपको क्लीनर, अधिक कुशल कोड लिखने में मदद कर सकता है।

समय टिकट:

से अधिक स्टैकब्यूज