Skip to main content

पाठ 2: क्रियाओं को दोहराना

अब जबकि वीआर रोबोट ने पेन का उपयोग करके आर्ट कैनवास प्लेग्राउंड पर एक वर्ग बना दिया है, तो आपलूप के लिए उपयोग करना सीखेंगे और अपने प्रोजेक्ट को सरल बनाएंगे। यह पाठ आपको आर्ट कैनवास प्लेग्राउंड परफॉर लूप का उपयोग करके एक वर्ग बनाने के चरणों के माध्यम से ले जाएगा।

कला कैनवास खेल का मैदान जिस पर एक काला वर्ग बना हुआ है। वी.आर. रोबोट खेल के मैदान के केंद्र में, वर्ग के निचले बाएं कोने में स्थित है।

सीखने के परिणाम

  • पहचानें कि for लूप का उपयोग करके इसके अंदर दिए गए आदेशों को एक निश्चित संख्या में कैसे दोहराया जाए।
  • पहचानें कि for लूप में एक 'value' वेरिएबल और एकrangeफ़ंक्शन शामिल है जो दोहराव की संख्या की पहचान करता है। 
  • पहचानें किforलूप काrangeफ़ंक्शन यह पहचानता है कि लूप को कितनी बार दोहराया जाना चाहिए।
  • पहचानें किforलूप काrangeफ़ंक्शन पूर्णांकों को पैरामीटर के रूप में स्वीकार कर सकता है।
  • वर्णन करें कि किसी प्रोजेक्ट में for लूप का उपयोग क्यों किया जाएगा।
  • एक परियोजना के प्रवाह का वर्णन करें जिसमें for लूप शामिल है।

परियोजना का नाम बदलें

  • यदि पिछले पाठ का प्रोजेक्ट पहले से लोड नहीं है, तो Unit3Lesson1 प्रोजेक्ट लोड करें।
  • प्रोजेक्ट नाम बॉक्स का चयन करके प्रोजेक्ट का नाम बदलें।
    प्रोजेक्ट नाम बॉक्स हाइलाइट किए गए VR टूलबार. बॉक्स में नाम है यूनिट 3 पाठ 1.
  • नया प्रोजेक्ट नाम दर्ज करें Unit3Lesson2, और “सहेजें” चुनें।
    प्रोजेक्ट नाम संवाद के साथ VR टूलबार खुला है। परियोजना का नाम बदलकर यूनिट 3 पाठ 2 कर दिया गया है, तथा सेव बटन को लाल बॉक्स से चिन्हित किया गया है।

दोहराई जाने वाली क्रियाएँ

for लूप का उपयोग इसके अंदर दिए गए आदेशों को एक निश्चित संख्या में दोहराने के लिए किया जाता है। for लूप उन परियोजनाओं को बनाते समय समय और प्रयास बचाता है जहां कमांड दोहराए जाते हैं। अतिरिक्त कमांड को खींचने या टाइप करने या कार्यक्षेत्र में मौजूदा कमांड की प्रतिलिपि बनाने में समय लगाने के बजाय, forलूप का उपयोग स्थान और समय बचाने के लिए किया जा सकता है।

यह परियोजनाफॉरलूप का उपयोग करके वीआर रोबोट को एक वर्ग की चारों भुजाएं खींचने के लिए प्रेरित करेगी, जिसमें एक भुजा खींचने के लिए दिए गए आदेशों को चार बार दोहराया जाएगा।

  • पिछली परियोजना को संशोधित करके, नीचे दी गई परियोजना की प्रतिलिपि बनाकर, या इस आधार परियोजना से मेल खाने वाली नई परियोजना बनाकर आरंभ करें। 
def main():
	pen.move(DOWN)
	drivetrain.drive_for(FORWARD, 600, MM)
	drivetrain.turn_for(RIGHT, 90, DEGREES)
	drivetrain.drive_for(FORWARD, 600, MM)
	drivetrain.turn_for(RIGHT, 90, DEGREES)
	drivetrain.drive_for(FORWARD, 600, MM)
	drivetrain.turn_for(RIGHT, 90, DEGREES)
	drivetrain.drive_for(FORWARD, 600, MM)
	drivetrain.turn_for(RIGHT, 90, DEGREES)

 

  • इस परियोजना में दोहराए गए आदेशdrive_forऔरturn_forआदेश हैं। प्रोजेक्ट में नीचे के छह कमांड हटा दें, ताकिmoveकमांड के नीचे केवल एकdrive_forऔर एक turn_forकमांड बचे, और प्रोजेक्ट इस तरह दिखेगा: 

    def main():
        pen.move(DOWN)
        drivetrain.drive_for(FORWARD, 600, MM)
        drivetrain.turn_for(RIGHT, 90, DEGREES)
  • forलूप को main functionके अंत तक खींचें, ताकि आपका प्रोजेक्ट इस तरह दिखे। ध्यान दें किforलूप स्वचालित रूप से अंदरwaitकमांड भर देगा। waitकमांडन हटाएं, इससे यह सुनिश्चित होगा कि VR रोबोट सही ढंग से व्यवहार करे।

    def main():
        pen.move(DOWN)
        drivetrain.drive_for(FORWARD, 600, MM)
        drivetrain.turn_for(RIGHT, 90, DEGREES)
    
        for repeat_count in range(10):
            wait(5, MSEC)
  • वर्ग की एक भुजा बनाने के लिए ड्राइवट्रेन कमांड को दोहराने के लिएforलूप के लिए, उन कमांडों को forलूप के भीतर होना चाहिए, जिसे इंडेंटेशन द्वारा दर्शाया गया है। ड्राइवट्रेन कमांड के लिए स्थान बनाने हेतुforलूप औरwaitकमांड के बीच दो लाइनें जोड़ें। उपरोक्त जैसा ही प्रोजेक्ट, जिसमें for कमांड और wait कमांड के बीच दो पंक्तियों का स्थान जोड़ा गया है।
  • इसके बाद, ड्राइवट्रेन कमांड को for लूप के अंदर ले जाने के लिए, कमांड को for लूप हेडर के नीचे कॉपी और पेस्ट करें, कमांड को हाइलाइट करें और drive_for और turn_for कमांड को लूप हेडर और waitकमांड के बीच खींचें, या उन्हें नीचे दिए गए प्रोजेक्ट से कॉपी और पेस्ट करें।
def main():
	pen.move(DOWN)
	
	for value in range(10):
		drivetrain.drive_for(FORWARD, 600, MM)
		drivetrain.turn_for(RIGHT, 90, DEGREES)
		wait(5, MSEC)
  • सुनिश्चित करें कि for लूप के अंदर के कमांड सही ढंग से इंडेंट किए गए हैं, बाईं ओर की ग्रे लाइन का उपयोग गाइड के रूप में करें जो इंगित करता है कि for लूप के अंदर कौन से कमांड हैं

आपकी जानकारी के लिए

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

ऊपर से प्रोजेक्ट, जिसमें "मार्गदर्शक रेखा" लिखा है और तीर हल्के भूरे रंग की रेखा की ओर इशारा करता है जो फॉर लूप के भीतर कमांड के सही इंडेंटेशन को इंगित करता है। अंतिम तीन कमांडों के चारों ओर लाल ब्रैकेट यह दर्शाता है कि वे फॉर लूप के भीतर समान रूप से इंडेंटेड और संरेखित हैं।

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

फॉर लूप में गलत इंडेंटेशन के दो सामान्य उदाहरण साथ-साथ दिए गए हैं, तथा उनके ऊपर बड़े लाल x का निशान इस बात पर जोर देता है कि वे गलत हैं। बाईं ओर का प्रोजेक्ट इसी पाठ का प्रोजेक्ट है, लेकिन फॉर लूप के भीतर कोई इंडेंटेशन नहीं है। दाईं ओर का प्रोजेक्ट इसी पाठ का प्रोजेक्ट है, लेकिन नीचे के तीनों कमांड अलग-अलग डिग्री पर इंडेंट किए गए हैं।

VEXcode VR आपको अपना प्रोजेक्ट चलाने से पहले इंडेंटेशन त्रुटियों को हल करने के लिए कह सकता है। इन त्रुटियों को प्रिंट कंसोल में पहचाना जा सकता है, ताकि आप आसानी से समस्या का समाधान कर सकें और अपना प्रोजेक्ट चला सकें।इस पाठ का प्रोजेक्ट बाईं ओर दिखाया गया है। VEXcode VR में प्रिंट कंसोल दाईं ओर दिखाया गया है, जिसमें दाईं ओर एक अप्रत्याशित इंडेंट का संदर्भ देते हुए लाल रंग का त्रुटि संदेश दिखाया गया है। एक बड़ा लाल तीर त्रुटि संदेश से लेकर परियोजना में त्रुटि वाली पंक्ति तक फैला हुआ है।

 

 

  • अब चूंकि वर्ग की एक भुजा खींचने के लिए ड्राइवट्रेन कमांड लूप के भीतर हैं, रेंजफ़ंक्शन का पैरामीटर सेट किया जा सकता है। एक वर्ग बनाने के लिए, चार भुजाएँ खींचनी होंगी। आदेशों को चार बार दोहराने के लिए, के लिए लूप हेडर में रेंज फ़ंक्शन के पैरामीटर को "4" पर सेट करें ताकि एक वीआर रोबोट एक वर्ग के सभी चार पक्षों को खींच सके।
    इस पाठ से परियोजना, जिसमें फॉर लूप में रेंज फ़ंक्शन का पैरामीटर 10 से 4 में बदल दिया गया है।

आपकी जानकारी के लिए

for लूप हेडर में range फ़ंक्शन पूर्णांक स्वीकार कर सकता है। दशमलव (या फ्लोट) for लूप के लिए पैरामीटर के रूप में काम नहीं करेगा। श्रेणीफ़ंक्शन के लिए डिफ़ॉल्ट पैरामीटर '10' है। 

पैरामीटर में पूर्णांक 10 के साथ लूप कमांड के लिए।
  • यदि यह पहले से खुला नहीं है तो आर्ट कैनवस प्लेग्राउंड को खोलने के लिए "ओपन प्लेग्राउंड" बटन का चयन करें और प्रोजेक्ट शुरू करें।
    VEXcode VR टूलबार जिसमें ऊपरी दाईं ओर लाल बॉक्स द्वारा हाइलाइट किया गया ओपन प्लेग्राउंड बटन है।
  • वीआर रोबोट को आगे बढ़ते हुए देखें और पेन से एक वर्ग बनाने के लिए आर्ट कैनवास प्लेग्राउंड पर चार बार दाईं ओर मुड़ें।

    कला कैनवास खेल का मैदान जिस पर एक काला वर्ग बना हुआ है। वी.आर. रोबोट खेल के मैदान के केंद्र में, वर्ग के निचले बाएं कोने में स्थित है।

इस पाठ के शेष भाग को जारी रखने के लिए अगला बटन का चयन करें।