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

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

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

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