पाठ 4: नेस्टेड लूप का उपयोग करना
पिछले पाठ में, आपने वीआर रोबोट को निर्देश देने के लिए एक प्रोजेक्ट बनाया था कि वह डिस्क मूवर प्लेग्राउंड में मौजूद तीनों नीली डिस्क को उठाकर नीले लक्ष्य तक ले जाए। इस पाठ में, आप नेस्टेड लूप का उपयोग करके डिस्क मूवर प्लेग्राउंड में प्रत्येक रंग की एक डिस्क को उठाकर उसके संबंधित रंगीन लक्ष्य में ले जाने के लिए एक प्रोजेक्ट बनाएंगे!

सीखने के परिणाम
- लूप को नेस्ट करने का तरीका पहचानें।
- नेस्टेड लूप के माध्यम से किसी प्रोजेक्ट के प्रवाह का वर्णन करें।
- बताइए कि किसी प्रोजेक्ट में नेस्टेड लूप का उपयोग क्यों किया जाएगा।
नेस्टेड लूप क्या होते हैं?
इस पाठ्यक्रम की पिछली इकाइयों और पाठों में, आपने व्यवहारों को दोहराने के लिए नियंत्रण श्रेणी से लूप का उपयोग किया है, जैसे कि फ़ॉर लूप, व्हाइल लूप, और अनंत व्हाइललूप। एक लूप के अंदर दूसरा लूप रखने को 'नेस्टिंग' कहते हैं। नेस्टेड लूप उन परियोजनाओं में सहायक होते हैं जहां एक वीआर रोबोट एक ही व्यवहार को एक से अधिक बार दोहराता है, जैसे कि प्लेग्राउंड पर कई डिस्क को स्थानांतरित करना। नेस्टिंग लूप किसी प्रोजेक्ट को व्यवस्थित और संक्षिप्त कर सकते हैं, जिससे उसे समझना आसान हो जाता है। इससे कोड के संदर्भ और उद्देश्य को बेहतर ढंग से समझने में मदद मिल सकती है, साथ ही त्रुटियों की पहचान करना और किसी प्रोजेक्ट में आने वाली समस्याओं का निवारण करना भी आसान हो जाता है।
उदाहरण के लिए, तीनों नीली डिस्क को नीले लक्ष्य तक ले जाने के लिए, एकलूप का उपयोग डिस्क को कई बार इकट्ठा करने की प्रक्रिया को दोहराने के लिए किया जा सकता है। यहां प्रदर्शित प्रोजेक्ट, पहले नीले डिस्क को नीले लक्ष्य तक ले जाने के लिए पाठ 3 के प्रोजेक्ट को लूप के अंदर रखता है, जिसमें पैरामीटर 3 पर सेट है। ध्यान दें कि पिछले प्रोजेक्ट के चार खंड for लूप के भीतर कैसे इंडेंट किए गए हैं।
def main():
for repeat_count in range(3):
#1. पहली डिस्क
पर ड्राइव करें जबकि डाउन_आई.नियर_ऑब्जेक्ट() नहीं है:
ड्राइवट्रेन.ड्राइव(फॉरवर्ड)
प्रतीक्षा करें(5, एमएसईसी)
ड्राइवट्रेन.स्टॉप()
# 2. डिस्क उठाएँ
मैग्नेट.एनर्जाइज़ (बूस्ट)
# 3. लक्ष्य की ओर ड्राइव करें
ड्राइवट्रेन.टर्न_टू_हेडिंग(180, डिग्री)
जबकि फ्रंट_डिस्टेंस.गेट_डिस्टेंस(एमएम) > 200:
ड्राइवट्रेन.ड्राइव(फॉरवर्ड)
प्रतीक्षा करें(5, एमएसईसी)
ड्राइवट्रेन.स्टॉप()
# 4. डिस्क को लक्ष्य में गिराएँ
magnet.energize(DROP)
drivetrain.drive_for(REVERSE, 100, MM)
drivetrain.turn_to_heading(0, DEGREES)
wait(5, MSEC)जब आप लूप को 'नेस्ट' करते हैं, तो बाहरी लूप यह नियंत्रित करता है कि आंतरिक लूप कितनी बार निष्पादित होगा। इस प्रोजेक्ट में,वाला लूप बाहरी लूप है, और यह लूप में होने वाले व्यवहारों को तीन बार दोहराएगा।
भीतरी लूप वे लूप होते हैं जो बाहरी लूप के भीतर समाहित होते हैं। इस उदाहरण में,whileलूप (डिस्क और लक्ष्य तक ड्राइव करने के लिए) में से प्रत्येकआंतरिक लूप' है जो हर बार प्रोजेक्टके माध्यम से आगे बढ़ने पर निष्पादितहै
आपकी जानकारी के लिए
VEXcode VR Python प्रोजेक्ट्स में इंडेंटेशन महत्वपूर्ण है। लूप को नेस्ट करते समय, आप वर्कस्पेस में मौजूद ग्रे इंडिकेटर लाइनों का उपयोग एक दृश्य सहायता के रूप में कर सकते हैं, ताकि यह सुनिश्चित हो सके कि आपका प्रोजेक्ट इच्छानुसार काम कर रहा है। प्रत्येक पंक्ति एक लूप की शुरुआत और अंत को दर्शाती है।

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

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