पाठ 4: बार-बार होने वाले व्यवहार
पिछले पाठ में, आपने देखा कि वीआर रोबोट द्वारा स्थितियों की जांच करने के लिए if कथनों का उपयोग कैसे किया जाता है। हालाँकि, परियोजना के प्रवाह के कारण, if कथनों के भीतर की शर्तों की जाँच केवल एक बार की जाती है। इस पाठ में, आपको अनंत लूप से परिचित कराया जाएगा और बताया जाएगा कि इसका उपयोग डिस्क भूलभुलैया चुनौती को हल करने के लिए कैसे किया जा सकता है।

सीखने के परिणाम
- पहचानें कि एक अनंत while लूप लूप के अंदर के व्यवहार को हमेशा के लिए दोहराता है।
- वर्णन करें कि एक परियोजना में अनंत whileलूप का उपयोग क्यों किया जाएगा।
- एक परियोजना में परियोजना प्रवाह का वर्णन करें जिसमें अनंत whileलूप के अंदर कई if कथन हैं।
- समझाइए कि if कथनों का उपयोग अनंत while लूपों के साथ क्यों किया जाता है।
बार-बार स्थितियों की जाँच करना
जैसा कि पिछले पाठ में देखा गया है, if कथन केवल एक बार ही किसी शर्त की जांच करता है। if कथनों में निहित शर्तों की बार-बार जांच करने के लिए, परियोजना को बार-बार प्रारंभ पर वापस लौटना होगा। ऐसा करने के लिए, एक अनंत whileलूप की आवश्यकता है।
जबकि सत्य:
प्रतीक्षा (5, MSEC)एक अनंत while लूप एक शर्त का उपयोग करता है जिसका मूल्यांकन हमेशा सत्य होता है। While लूप लूप के मुख्य भाग को तब निष्पादित करते हैं जब स्थिति सत्य होती है, इसलिए लूप के अंदर कमांड अनंत बार दोहराए जाते हैं।
अनंत whileलूप और डिस्क भूलभुलैया समस्या
वीआर रोबोट को हमारी इच्छानुसार व्यवहार करने के लिए, तथा डिस्क भूलभुलैया में सफलतापूर्वक नेविगेट करने के लिए,ifकथनों द्वारा निर्धारित शर्तों की बार-बार जांच की जानी चाहिए, क्योंकि वीआर रोबोट खेल के मैदान में घूमता है। संपूर्ण प्रोजेक्ट में एक अनंतwhileलूप जोड़ने से ऐसा हो सकेगा, क्योंकि नीचे दिए गए प्रोजेक्ट में अनंत while लूप में शामिल सभी if कथनों की बार-बार जांच की जाती है, जब तक कि प्रोजेक्ट बंद न हो जाए।
यहां इंडेंटेशन पर ध्यान दें। सभी if कथनों को अनंत while लूप के भीतर इंडेंट किया गया है। अनंत while लूप का अंत wait कमांड द्वारा नोट किया जाता है।
def main():
while True:
# यदि सामने वाली आँख हरे रंग का पता लगाती है तो दाईं ओर मुड़ें
यदि front_eye.detect(GREEN):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# यदि सामने वाली आँख नीले रंग का पता लगाती है तो बाईं ओर मुड़ें
यदि front_eye.detect(BLUE):
drivetrain.turn_for(LEFT, 90, DEGREES)
# यदि सामने वाली आँख लाल रंग का पता लगाती है तो रुकें
यदि front_eye.detect(RED):
drivetrain.stop()
# यदि सामने वाली आँख कोई नहीं पहचानती है तो आगे बढ़ें
यदि front_eye.detect(NONE):
drivetrain.drive(FORWARD)
wait(5, MSEC)पिछले पाठ की परियोजना में, if कथनों के भीतर की शर्तों की केवल एक बार जाँच की गई थी। चूंकि if कथनों के भीतर की स्थितियों की केवल एक बार जांच की गई थी, इसलिए VR रोबोट हमेशा के लिए आगे बढ़ गया क्योंकि परियोजना की शुरुआत में कोई रंग नहीं पाए जाने की स्थिति को सत्य के रूप में रिपोर्ट किया गया था।
अब चूंकि अनंत while लूप जोड़ दिया गया है, इसलिए if कथनों की प्रत्येक शर्त की बार-बार जांच की जाएगी।
- अनंतwhile लूप की स्थिति हमेशा सत्य होती है, और इसलिए अनंतwhile लूप के अंदर का कोड हमेशा निष्पादित होगा। यह परियोजना के चलने के दौरान if कथनों की शर्तों की निरंतर जांच करेगा।
- याद रखें कि while लूप के 'अंदर' को इंडेंटेशन द्वारा दर्शाया जाता है।
- परियोजना के प्रवाह के दौरान, यदि if कथन की स्थिति सत्य है, if कथन के अंदर के आदेश निष्पादित होते हैं। यदि if कथन की शर्त गलत है, तो if कथन के अंदर के आदेश निष्पादित नहीं होते हैं, और परियोजना का प्रवाह अगले आदेश तक जारी रहेगा। इससे वीआर रोबोट को एक निश्चित रंग का पता चलने पर मुड़ने या रुकने जैसे अलग-अलग व्यवहार करने में सक्षम बनाता है।
- यदि कथनों का उपयोग अनंत जबकिलूपों के साथ किया जाता है ताकि यह सुनिश्चित किया जा सके कि शर्तों की लगातार जांच की जाती है, अनिवार्य रूप से लूप के भीतर यदिकथनों के प्रोजेक्ट प्रवाह को संयोजित किया जाता है।
इस पाठ के शेष भाग को जारी रखने के लिए अगला बटन का चयन करें।