स्विच स्टेटमेंट्स: एक रिफ्रेशर
स्विच स्टेटमेंट आपको कोड ब्लॉक्स के एक सेट से एक को चुनकर चलाने देता है। वे प्रोग्राम में कई एक्सप्रेशन्स का मूल्यांकन करने का एक तरीका हैं।
स्विच स्टेटमेंट स्विच स्टेटमेंट का मूल्यांकन करके और उस स्टेटमेंट के परिणाम की तुलना "केस" स्टेटमेंट्स में मानों से करके काम करता है। यदि कोई मैच मिलता है, तो कोड का संबंधित ब्लॉक चलता है। अन्यथा, कुछ नहीं होगा।
वैकल्पिक रूप से, "डिफ़ॉल्ट" कीवर्ड का उपयोग कोड के एक ब्लॉक को चलाने के लिए किया जाता है यदि कोई स्टेटमेंट नहीं मिलता जो विशेष एक्सप्रेशन से मेल खाता हो।
पायथन स्विच स्टेटमेंट: व्यक्तिगत मान रिटर्न करना
आइए एक प्रोग्राम लिखते हैं जो न्यूमेरिकल मान को सप्ताह के दिन में बदलता है।
शुरू करने के लिए, यूज़र से वह नंबर डालने के लिए कहें जिसे वे लिखित दिन में बदलना चाहते हैं:
convert_to_day = int(input("Insert a day of the week: "))
हम यूज़र द्वारा हमारे प्रोग्राम में डाले गए मान को इंटीजर में बदलते हैं। हम बाद में ट्यूटोरियल में चर्चा करेंगे कि यह क्यों आवश्यक है।
अगला, हम एक डिक्शनरी परिभाषित करते हैं। यह डिक्शनरी सप्ताह के सभी दिनों को समाहित करेगी। प्रत्येक की दिन को नंबर के रूप में स्टोर करेगी और प्रत्येक मान दिन को लिखित रूप में स्टोर करेगा (यानी मंगलवार):
days = {
1: "Monday",
2: "Tuesday",
3: "Wednesday",
4: "Thursday",
5: "Friday",
6: "Saturday",
7: "Sunday"
}
हमारी डिक्शनरी में सात कीज़ और मान हैं। की "1" "Monday" को दर्शाता है और इसी तरह सप्ताह के अंतिम दिन तक।
अगला, हम डिक्शनरी get() मेथड का उपयोग करके इस डिक्शनरी में उस आइटम को एक्सेस करते हैं जो यूज़र द्वारा डाले गए मान से मेल खाता है:
day_as_written = days.get(convert_to_day, "There is no day with this numerical value.") print(day_as_written)
हमने यूज़र द्वारा हमारे प्रोग्राम में डाले गए मान को इंटीजर में बदल दिया है ताकि हम इसे अपने get() स्टेटमेंट में उपयोग कर सकें। यदि कोई की "convert_to_day" द्वारा स्टोर किए गए मान के बराबर नहीं है, तो हमारा कोड "There is no day with this numerical value." रिटर्न करेगा।
यदि यूज़र मान "1" डालता है, तो हमारा कोड मूल्यांकन करेगा:
days[1]
यह हमारी लिस्ट में की "1" से जुड़े मान को प्राप्त करेगा।
आइए अपना कोड चलाएं और देखें क्या होता है:
Insert a day of the week: 1 Monday
हमारा कोड सफलतापूर्वक यूज़र द्वारा डाले गए नंबर को स्ट्रिंग में बदल देता है। आइए अपनी डिक्शनरी में मौजूद न होने वाले दिन पर अपना कोड चलाएं:
Insert a day of the week: 8 There is no day with this numerical value.
हमारा कोड तब भी काम करता है जब यूज़र अमान्य मान डालता है।
पायथन स्विच स्टेटमेंट: फंक्शन्स कॉल करना
हम इस सिंटैक्स का उपयोग अपने कोड में फंक्शन्स कॉल करने के लिए कर सकते हैं। हम एक एप्लिकेशन बनाने जा रहे हैं जो सैंडविच स्टोर पर खरीदारी की लिस्ट के बारे में जानकारी प्रदर्शित करता है।
पहले, खरीदारी की लिस्ट परिभाषित करें:
purchases = [2.50, 2.50, 2.75, 3.90, 5.60, 2.40]
अगला, तीन फंक्शन्स परिभाषित करें। ये फंक्शन्स गणना करेंगे:
- हमारी लिस्ट में खरीदारी की संख्या
- औसत खरीद मूल्य
- सबसे बड़ी खरीद
आइए इन फंक्शन्स को परिभाषित करें:
def number_of_purchases():
total = len(purchases)
print(total)
def average_value():
average = sum(purchases) / len(purchases)
print(average)
def largest_purchase():
largest = max(purchases)
print(largest)
अब जब हमने इन फंक्शन्स को परिभाषित कर लिया है, तो अपना नकली स्विच स्टेटमेंट लिखना शुरू करें। जैसे हमने अपने पहले उदाहरण में किया था, हम यूज़र से मान डालने के लिए कहकर शुरू करते हैं। यूज़र द्वारा डाला गया मान हमारे फंक्शन्स में से एक से मेल खाना चाहिए।
print("[1] Display the number of purchases made today")
print("[2] Display the average value of all the purchases made today")
print("[3] Display the largest purchase made today")
to_run = int(input("What would you like to do? "))
हमारा कोड तीन मैसेज प्रिंट करता है। प्रत्येक यूज़र को उनके द्वारा लिए जा सकने वाले विकल्प के बारे में सूचित करता है। हमारा कोड तब यूज़र से मान डालने के लिए कहता है। हम इस मान को नंबर में बदलते हैं ताकि हम इसे बाद में अपने प्रोग्राम में उपयोग कर सकें।
अगला, एक डिक्शनरी परिभाषित करें जो हमारे फंक्शन्स को नंबर्स से मैप करती है:
options = {
1: number_of_purchases,
2: average_value,
3: largest_purchase
}
मान "1" "number_of_purchases" नामक फंक्शन से मैप होता है, मान "2" "average_value" फंक्शन से मैप होता है, और मान "3" "largest_purchase" फंक्शन से मैप होता है।
अगला, get() मेथड का उपयोग करके चुनें कि हमारा प्रोग्राम कौन सा फंक्शन चलाना चाहिए:
function_to_execute = options.get(to_run) function_to_execute()
यह कोड हमारी डिक्शनरी से उस फंक्शन को प्राप्त करता है जिसे हम एक्जीक्यूट करना चाहते हैं। हमने अपने get() मेथड में दूसरा मान निर्दिष्ट नहीं किया है क्योंकि हमें अपने कोड को काम करने के लिए फंक्शन कॉल करने की आवश्यकता है। इसका मतलब है कि यदि यूज़र अमान्य मान डालता है, तो हमारा कोड एरर रिटर्न करता है। इस व्यवहार को संभालने के तरीके हैं लेकिन ऐसा करना इस ट्यूटोरियल के दायरे से बाहर है।
आइए अपना कोड चलाएं:
[1] Display the number of purchases made today [2] Display the average value of all the purchases made today [3] Display the largest purchase made today What would you like to do? 3 5.6
हमने अपनी लिस्ट से विकल्प 3 चुना है। हमारा कोड सफलतापूर्वक किसी विशेष दिन की गई सबसे बड़ी खरीद को प्रिंट करता है। आइए विकल्प 2 चुनने का प्रयास करें:
[1] Display the number of purchases made today [2] Display the average value of all the purchases made today [3] Display the largest purchase made today What would you like to do? 2 3.275
हमारा कोड हमारी लिस्ट में खरीदारी के औसत मूल्य को रिटर्न करता है।
निष्कर्ष
जबकि पायथन में बिल्ट-इन स्विच स्टेटमेंट नहीं है, आप डिक्शनरी और get() मेथड का उपयोग करके एक बना सकते हैं।
स्विच स्टेटमेंट उपयोगी होते हैं यदि आप किसी एक्सप्रेशन का मूल्यांकन कई संभावित परिणामों के विरुद्ध करना चाहते हैं।
आप एक नकली स्विच स्टेटमेंट लिख सकते हैं जो आपके द्वारा निर्दिष्ट की के आधार पर डिक्शनरी से मान प्राप्त करता है। आप एक नकली स्विच स्टेटमेंट भी लिख सकते हैं जो विशेष की के आधार पर डिक्शनरी से फंक्शन प्राप्त करता है जिसे आप रेफरेंस करते हैं।
अब आप पायथन प्रोग्रामिंग भाषा में अपने स्वयं के स्विच स्टेटमेंट बनाने के लिए एक एक्सपर्ट कोडर की तरह तैयार हैं!