उन्नत पायथन विकास पाठ्यक्रम
अध्याय
>
स्तर
उन्नत फ़ंक्शंस
वैरिएंट तर्क फ़ंक्शंस
उद्देश्य
स्टोरहाउस के अंदर के सभी खाने योग्य सामग्रियों को पकड़ें और वैरिएंट आर्गुमेंट फंक्शन्स का उपयोग करके उन्हें स्टोरेज कंटेनरों में पैक करें।
स्टोरहाउस के अंदर कई खाद्य वस्तुएँ हैं जिन्हें शिपिंग के लिए पैक किया जाना है ताकि उन्हें बेचा जा सके। इसे कुशलतापूर्वक करने के लिए, आप वैरिएबल संख्या के आर्गुमेंट्स के साथ कस्टम फंक्शन्स बना सकते हैं। ये ऐसे फंक्शन्स हैं जिनके लिए कोई निश्चित संख्या में आर्गुमेंट्स नहीं होते हैं और आपको जितने भी आर्गुमेंट्स की आवश्यकता हो, उन्हें सेट करने की अनुमति देते हैं ताकि फंक्शन के कार्यों को निष्पादित किया जा सके।
फंक्शन में वैरिएबल संख्या के आर्गुमेंट्स जोड़ने के दो (2) तरीके हैं, यह इस पर निर्भर करता है कि आप क्या प्राप्त करना चाहते हैं।
पहला तरीका है आर्गुमेंट लिस्ट बनाना, विभिन्न आर्गुमेंट नामों को एक साथ डालने के बजाय, एकल आर्गुमेंट के सामने एक एस्टरिस्क लगाएं। इससे स्वचालित रूप से एक लिस्ट बन जाती है।
def custom_function(message,*arguments):
player.speak(message)
return(arguments)
value = custom_function("lalala","one","two","three")
# The message "lalala" is printed on screen
# Value now returns the list ("one","two","three")
दूसरा तरीका है कि आर्गुमेंट्स को लिस्ट की बजाय एक डिक्शनरी के अंदर रखा जाए, यह उसी तरीके से किया जाता है जैसा पिछले तरीके में किया गया था लेकिन एक एस्टरिस्क की बजाय दो एस्टरिस्क लगाते हैं। इससे स्वचालित रूप से एक लिस्ट के बजाय डिक्शनरी बन जाती है।
def custom_function(message,**arguments):
player.speak(message)
return(arguments)
value = custom_function("lalala", one = 1, two = 2, three = 3)
# The message "lalala" is printed on screen
# Value now returns the dictionary:
# {'one': 1, 'three': 3, 'two': 2}
सभी वस्तुओं को शिपमेंट के लिए पैक करने हेतु, दो प्रकार के कस्टम फंक्शन्स बनाएं, एक एकल वस्तुओं को पैक करने के लिए और एक साथ कई वस्तुओं को पैक करने के लिए। बहुत सारे फंक्शन्स बनाने की आवश्यकता को कम करने के लिए वैरिएबल आर्गुमेंट्स का उपयोग करके विभिन्न वस्तुओं को एक साथ पैक करें।
def pack_singles(name,*items):
length = len(items)
player.speak("There are %d types of %s, those being:"
% (length, name) )
player.speak(items)
player.place(items)
def pack_multi(name,**items):
length = len(items)
player.speak("There are %d types of %s, those being:"
% (length, name) )
player.speak(items)
player.place(items)
मैदान में चार (4) विभिन्न प्रकार की वस्तुएँ हैं: jars, eggs, berries और fruit। स्टोरहाउस में सभी वस्तुओं को एकत्रित करें और शिपिंग लेन पर X मार्क्स की ओर चलें। गहरे X मार्क्स तक जाएं और pack_singles फंक्शन्स का उपयोग करके jars और eggs को पैक करें।
jars के लिए, आप चार (4) प्रकार एकत्रित करते हैं जो आर्गुमेंट्स के रूप में दर्ज होते हैं, ये हैं white, purple, red और brown। इन्हें green carpet के पास कंटेनर में संग्रहित किया जाना है। कोड इस प्रकार लिखा जाता है: pack_singles("jars", "white", "purple", "red", "brown")
eggs के लिए, आप तीन (3) प्रकार एकत्रित करते हैं जो आर्गुमेंट्स के रूप में दर्ज होते हैं, ये हैं white, green, और blue। इन्हें orange carpet के पास कंटेनर में संग्रहित किया जाना है। पिछले सेटअप के समान ही फॉर्मेट का उपयोग किया जाता है।
उसके बाद हल्के X मार्क्स तक जाएं और pack_multi फंक्शन का उपयोग करके berries और fruit को पैक करें।
berries के लिए, आप तीन (3) प्रकार एकत्रित करते हैं जो आर्गुमेंट्स के रूप में दर्ज होते हैं, ये हैं red, blue, और purple। इन्हें blue carpet के पास कंटेनर में संग्रहित किया जाना है। आपको इनके लिए प्रत्येक की एकत्रित मात्रा भी जोड़नी है, इस प्रकार: pack_multi("berries", red = 3 , blue = 2 , purple = 4 )
fruit के लिए, आप चार (4) प्रकार एकत्रित करते हैं जो आर्गुमेंट्स के रूप में दर्ज होते हैं, ये हैं apple, pear, orange, और peach। इन्हें red carpet के पास कंटेनर में संग्रहित किया जाना है। पिछले प्रविष्टि के समान ही फॉर्मेट का उपयोग करें, और सुनिश्चित करें कि स्तर पूरा करने के लिए सभी वस्तुओं को एकत्रित और संग्रहित किया गया है।