Coding for KidsCoding for Kids
रचनात्मक स्तरचुनौतियांशिक्षक गाइड
सुविधाओं के लिए वोट करें
उन्नत पायथन विकास पाठ्यक्रम
अध्याय
>
स्तर

जेनरेटर
जनरेटर को मैन्युअली आगे बढ़ाना

उद्देश्य

मैन्युअल अनुक्रम में जेनरेटर का उपयोग करके ब्रेड बनाने के लिए सामग्री एकत्रित और तैयार करें।

आगे एक ऐसी सुविधा है जहाँ आप प्रेस का उपयोग करके कुछ ब्रेड का आटा तैयार कर सकते हैं। सामान्यतः आप सामग्रियों को एक साथ करने के लिए combine() फ़ंक्शन का उपयोग करते हैं, लेकिन यहाँ ऐसा नहीं है; सामग्रियों को एक साथ करने से पहले उन्हें परिष्कृत करना आवश्यक है।

इस कार्य के लिए हम जेनरेटर का उपयोग कर सकते हैं क्योंकि इन्हें विभिन्न फ़ाइल प्रकारों का आउटपुट देने के लिए अनुकूलित किया जा सकता है तथा इनका अनुक्रम स्वतः आउटपुट करने की बजाय कमांड पर कॉल किया जा सकता है, जैसे कि फ़ंक्शन्स और लूप्स करते हैं। यहाँ एक उदाहरण है:

def bread(): yield 5 yield "grain"

ऊपर दिए गए कोड में दो yield स्टेटमेंट वाले एक जेनरेटर का उदाहरण दिया गया है, जिनमें से एक वास्तविक संख्या उत्पन्न करता है और दूसरा एक स्ट्रिंग।

हम जेनरेटर के मानों को इच्छानुसार next() फ़ंक्शन का उपयोग करके प्राप्त कर सकते हैं। इस प्रकार:

recipe = bread() # Sets up Generator player.place(next(recipe)) # First value is called player.collect(next(recipe)) # Second value is called

ऊपर के उदाहरण में, जेनरेटर को सेट अप किया गया है और next() फ़ंक्शन का उपयोग करके पहले yield मान को place() फ़ंक्शन में उपयोग के लिए कॉल किया गया है। इसी तरह से दूसरे मान के साथ दोहराया जाता है, परंतु इसे collect() फ़ंक्शन में उपयोग किया जाता है। इससे विभिन्न प्रकार के मानों को एक अनुक्रम में कॉल करना आसान हो जाता है, बिना कई सूचियाँ या वेरिएबल्स का उपयोग किए।

कोड एडिटर में bread() नामक एक जेनरेटर परिभाषित किया जाएगा, लेकिन ब्रेड के आटे को परिष्कृत करने के लिए प्रत्येक सामग्री के लिए मात्रा संख्याएँ आवश्यक होंगी। ये संख्याएँ सुविधा के बगल में लगे संकेत पर लिखी होती हैं।

उपयोग के लिए जेनरेटर को संदर्भित करके सेटअप करें, इस प्रकार: recipe = bread()

सबसे पहले दूध टैंक के बगल में स्थित हल्के X चिन्ह तक जाएँ और जेनरेटर के next() फ़ंक्शन का उपयोग करते हुए टैंक में बचे हुए दूध को collect() करें, इस प्रकार: player.collect(next(recipe))

फिर संकेत के पास स्थित सोने के X चिन्ह तक जाएँ और जेनरेटर के लिए ब्रेड बनाने हेतु आवश्यक मात्रा संख्याएँ प्राप्त करने के लिए speak() फ़ंक्शन का उपयोग करें तथा उन्हें जेनरेटर में लिखें। डेटा एक स्थायी नाम "sign" में संग्रहीत होता है और इसे इस प्रकार कॉल किया जाएगा: player.speak(sign)

एक बार जब सभी मान जेनरेटर में दर्ज हो जाएँ, तो सुविधा में प्रवेश करें और स्तर को पूरा करने के लिए गहरे X चिन्हों पर player.place(next(recipe)) तथा हल्के X चिन्हों पर player.collect(next(recipe)) का उपयोग करें।

कोड बुक