उन्नत पायथन विकास पाठ्यक्रम
अध्याय
>
स्तर
जनरेटर
जनरेटर को डेटा भेजना
लक्ष्य
ऊन इकट्ठा करें और जनरेटर में डेटा भेजकर उसे धागे में स्पिन करें।
कुछ भेड़ें थोड़ी बहुत ऊनी हो गई हैं, इसलिए उन्हें काटकर उनकी ऊन जमा करना सबसे अच्छा रहेगा। फिर आप ऊन को स्पिंडल से गुजारा कर धागा बना सकते हैं। इसे हासिल करने के लिए हमें जनरेटर का इस्तेमाल करना होगा क्योंकि धागा और ऊन के प्रसंस्करण की मात्रा में काफी अंतर हो सकता है।
पहले एक ऐसा जनरेटर परिभाषित करें जो धागा स्पिन करने में सक्षम हो, जिसका नाम spin() हो। इस जनरेटर को काम करने के लिए बाहरी इनपुट का उपयोग करना होगा। यह yield से डेटा पढ़ता है और उसे एक चर में रखता है, फिर हर चक्र में इसकी लंबाई बढ़ाकर उसके सामग्री में बदलाव करता है, अंततः एक परिणाम उत्पन्न करता है।
def spin():
cycle = 1
while True:
cycle += 1
yarn = yield
yarn = yarn * cycle
yield player.speak("You've spun %d ft of yarn" % (yarn))
चूँकि यह एक जनरेटर है, इसलिए इसके अंदर का while() कथन रुकाया और संशोधित किया जा सकता है ताकि हम वह आउटपुट प्राप्त कर सकें जिसकी हमें आवश्यकता है। यह नियंत्रण की क्षमता ही जनरेटर का सार है और यह डेटा प्रसंस्करण के दौरान कितना उपयोगी हो सकता है। जनरेटर में डेटा डालने के लिए, इसे परिभाषित करें और send() फ़ंक्शन का उपयोग करके इसमें कोई भी डेटा भेजें, उदाहरण के लिए:
spindle = spin() # जनरेटर का एक उदाहरण बनाएं next(spindle) # जनरेटर को एक कदम चलाएं spindle.send(6) # जनरेटर में डेटा भेजें # इस मामले में आप इसे संख्या 6 भेज रहे हैं
रंगीन कालीन द्वारा चिह्नित लाइट X तक जाएं और भेड़ों का सामना करें। एक डिक्शनरी स्थिरांक है जिसका नाम sheep है, जो प्रत्येक भेड़ से कितनी ऊन काटी जा सकती है यह मान रखता है। भेड़ों की ऊन काटने और यह देखने के लिए कि आपने कितनी ऊन इकट्ठी की है, speak() फ़ंक्शन का उपयोग करें, उदाहरण के लिए: player.speak(sheep["green"]) ।
कुल चार (4) रंगीन कालीन हैं: "green", "red", "blue" और "orange"। एक बार जब आपने भेड़ों से ऊन काट ली, तो प्रत्येक रंगीन कालीन के पास स्थित स्पिंडल्स के पास जाएं, जहां से डार्क X के चिन्हित स्थान हैं। send() का उपयोग करके, प्रत्येक भेड़ से काटी गई ऊन के पाउंड की संख्या को उनके संबंधित रंग के लिए जनरेटर में भेजें।
उदाहरण के लिए, यदि "green" कालीन पर भेड़ों से ऊन काटते समय आप 4 पाउंड ऊन काटते हैं, तो "green" कालीन के पास स्थित स्पिंडल्स के पास जाएं और उस डेटा को जनरेटर में इस प्रकार भेजें:
next(spindle) spindle.send( 4)
स्तर पूरा करने के लिए, रंगीन कालीनों पर स्थित चार (4) डार्क X स्थानों के लिए ऐसा ही करें।