पाठ 2: तुलना ऑपरेटरों का उपयोग करना
इस पाठ में, आप तुलना ऑपरेटरों के बारे में जानेंगे, तथा डिस्टेंस सेंसर से प्राप्त डेटा के साथ एक परियोजना में उनका उपयोग करेंगे। फिर आप एक प्रोजेक्ट बनाएंगे जो while लूप और (>) ऑपरेटर के साथ दूरी सेंसर का उपयोग करके वीआर रोबोट को अक्षर 'ए' पर ले जाएगा। मिनी-चैलेंज में, आप दीवार भूलभुलैया की शुरुआत से लेकर संख्या '1' तक नेविगेट करने के लिए इन कौशलों को लागू करेंगे।

सीखने के परिणाम
- पहचानें कि (>) से बड़ा, (<) से छोटा, और (==) के बराबर तुलना ऑपरेटर हैं जो दो मानों की तुलना करते हैं, जिन्हें ऑपरेंड के रूप में जाना जाता है।
- पहचानें कि (>) से बड़ा ऑपरेटर दो मानों की तुलना करता है और यदि बायां मान दायां मान से बड़ा है तो सत्य रिपोर्ट करता है।
- पहचानें कि less than (<) ऑपरेटर दो मानों की तुलना करता है और यदि बायां मान दायां मान से कम है तो True रिपोर्ट करता है।
- पहचानें कि (>) से अधिक या (<) से कम ऑपरेटर whileलूप में एक शर्त के रूप में उपयोग किए जाने पर सत्य या असत्य मान की रिपोर्ट करते हैं।
- वर्णन करें कि एक ऐसा प्रोजेक्ट कैसे बनाया जाए जिसमें VR रोबोट तब तक आगे बढ़ता रहे जब तक कि दूरी सेंसर का मान एक निश्चित राशि से कम न हो जाए।
तुलना ऑपरेटर
से कम (<), से अधिक (>), और बराबर (==) ऑपरेटर दो मानों की तुलना करते हैं, जिन्हें ऑपरेंड भी कहा जाता है। ऑपरेटर के बाईं ओर का मान पहला ऑपरेंड है, और दाईं ओर का मान दूसरा ऑपरेंड है। ऑपरेटर बूलियन मानों की रिपोर्ट करते हैं और तुलना सही होने पर सत्य मान लौटाते हैं, और तुलना NOTसही होने पर असत्य मान लौटाते हैं।
- इन उदाहरणों में (<) से कम ऑपरेटर का उपयोग करते हुए, जब कथन संख्यात्मक रूप से सही होता है, तो यह सत्य की रिपोर्ट करेगा।

- इसी तरह, इन उदाहरणों में (>) से अधिक ऑपरेटर का उपयोग करते हुए, संख्यात्मक रूप से सही कथन सत्य की रिपोर्ट करेगा।

- जब दो मान बिल्कुल समान होते हैं तो equal to (==) ऑपरेटर सत्य रिपोर्ट करता है, और जब वे समान नहीं होते हैं तो असत्य रिपोर्ट करता है।
- ध्यान दें कि दोहरे बराबर चिह्न का अर्थ "बराबर" है, और यह दो मानों की तुलना करता है। एकल बराबर चिह्न एक असाइनमेंट ऑपरेटर है जो किसी चर को एक मान निर्दिष्ट करता है।
तुलना ऑपरेटर दशमलव, पूर्णांक या संख्यात्मक रिपोर्टिंग कमांड की तुलना कर सकते हैं।
दूरी सेंसर डेटा के साथ तुलना ऑपरेटरों का उपयोग करना
तुलना ऑपरेटर विशेष रूप से तब उपयोगी होते हैं जब आप वीआर रोबोट को निर्णय लेने के लिए किसी सेंसर, जैसे कि डिस्टेंस सेंसर, से संख्यात्मक डेटा का उपयोग कर रहे हों। पिछली इकाई में, बम्पर सेंसर को दबाने पर VR रोबोट को घुमाने के लिए बम्पर सेंसर से प्राप्त डेटा का उपयोग किया गया था। हालाँकि, एक तुलना ऑपरेटर के साथ, हम दूरी सेंसर से डेटा का उपयोग करके वीआर रोबोट को अधिक सटीक स्थान पर घुमा सकते हैं। यह दीवारों से टकराने से बचने के लिए, या वीआर रोबोट को खेल के मैदान पर किसी विशिष्ट स्थान पर ले जाने के लिए उपयोगी है।
दूरी सेंसर से प्राप्त डेटा का उपयोग तुलना ऑपरेटर में मानों में से एक के रूप में किया जा सकता है।
front_distance.get_distance(MM) > 50उदाहरण के लिए, यदि हम चाहते हैं कि वीआर रोबोट किसी वस्तु, जैसे दीवार, की ओर बढ़े, और फिर उस वस्तु के करीब पहुंचने पर रुक जाए, तो हम तुलना ऑपरेटर और get _distance फ़ंक्शन का उपयोग करके ऐसा कर सकते हैं। मूलतः, हम वीआर रोबोट को तब ड्राइव करने के लिए कह रहे हैं जब रोबोट और वस्तु के बीच की दूरी एक सीमा मान, जैसे 50 मिलीमीटर (मिमी) से अधिक हो।
जब दूरी सेंसर रिपोर्ट करता है कि यह 50 मिलीमीटर (मिमी) सेआगेहै, या मान(>) 50 सेअधिक है, तो वीआर रोबोट स्वतंत्र रूप से ड्राइव कर सकता है। जब दूरी सेंसर रिपोर्ट करता है कि यह 50 मिलीमीटर (मिमी) सेहै, या मान>सेनहींअधिक है,वीआर रोबोट को दीवार से टकराने से पहले रुकने या मुड़नेआवश्यकता होती है।
आपकी जानकारी के लिए
किस तुलना ऑपरेटर का उपयोग करना है, इसका चयन एक शैलीगत विकल्प हो सकता है। उपरोक्त उदाहरण में प्रोजेक्ट को यथासंभव स्पष्ट और पठनीय बनाने के लिए greater than (>) ऑपरेटर का उपयोग किया गया था। जब वीआर रोबोट 50 मिलीमीटर से अधिक दूरी पर हो, तो आगे बढ़ें। आप ऑपरेटर में मानों के क्रम को उलट कर और (<) से कम ऑपरेटर का उपयोग करके समान लक्ष्य को प्राप्त कर सकते हैं।
जबकि 50 > front_distance.get_distance(MM):यहां, वीआर रोबोट तब ड्राइव करेगा जब दूरी सेंसर द्वारा बताए गए मान से 50 मिलीमीटर अधिक होगी। वी.आर. रोबोट भी यही व्यवहार करेगा, हालांकि, यह परियोजना थोड़ी कम स्पष्ट और पठनीय है।
आपके द्वारा उपयोग किए जा रहे सेंसर डेटा के आधार पर, (==) ऑपरेटर के बराबर वीआर रोबोट आपके इच्छित प्रदर्शन को नहीं कर सकता है। उदाहरण के लिए, यदि लक्ष्य वीआर रोबोट को किसी वस्तु से 50 मिलीमीटर दूर रोकना है, तो आप इसके लिए बराबर (==) ऑपरेटर का उपयोग करने के बारे में सोच सकते हैं।
जबकि front_distance.get_distance(MM) == 50:हालांकि, उदाहरण के लिए, वॉल भूलभुलैया में, डिस्टेंस सेंसर के साथ (==) ऑपरेटर का उपयोग करने के लिए सेंसर से इतनी सटीक रीडिंग की आवश्यकता होगी, जो कि=50 मिलीमीटर होगी, कि वीआर रोबोट की गति वास्तविक समय में सटीकता के उस स्तर को प्राप्त करना लगभग असंभव बना देगी। इस प्रकार, वीआर रोबोट संभवतः सीमा से आगे ड्राइविंग जारी रखेगा क्योंकि चाहे वह 100 मिलीमीटर या 25 मिलीमीटर का मान रिपोर्ट कर रहा हो, उनमें से कोई भी 50 मिमीके बराबर नहीं है, इसलिए ऑपरेटर कभी भी सत्य के रूप में रिपोर्ट नहीं करता है।
तुलना ऑपरेटर और दीवार भूलभुलैया समस्या
तुलना ऑपरेटरों और दूरी सेंसर के साथ while लूप का उपयोग किया जा सकता है, ताकि वीआर रोबोट लगातार सेंसर डेटा की जांच कर सके और तुलना का मूल्यांकन कर सके। इससे वीआर रोबोट को का व्यवहार करने में सक्षम बनाया जा सकता है, जबकि का मान एक निश्चित सीमा से ऊपर या नीचे होता है। दीवार भूलभुलैया में, वांछित परिणाम यह है कि वीआर रोबोट आगे बढ़ेजबकिदूरी सेंसर दीवार से 50 मिलीमीटर (मिमी) से अधिक दूरी पर हो। फिर, इसे रुक जाना चाहिए या भूलभुलैया में आगे बढ़ने के लिए मुड़ जाना चाहिए।
def main():
while front_distance.get_distance(MM) > 50:
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()इस वीडियो क्लिप उदाहरण में, बायीं ओर दिखाए गए प्रोजेक्ट में whileलूप VR रोबोट को प्रारंभिक स्थान से आगे की ओर ले जाएगा, जब तक कि शर्त पूरी हो जाती है, और VR रोबोट और निकटतम वस्तु (विपरीत पहली दीवार) के बीच की दूरी 50 मिलीमीटर (मिमी) से अधिक बताई जाती है। रोबोट तब रुक जाता है जब वह पहली दीवार के पास पहुंचता है और बताई गई दूरी 50 मिमी से कम होती है।
यह छवि उपरोक्त परियोजना के प्रवाह को समझाती है:
- जब दूरी सेंसर दीवार से 50 मिलीमीटर (मिमी) से अधिक दूरी पर होता है, तो ऑपरेटर सत्य रिपोर्ट करता है और while लूप में रहता है
- जब यह दीवार से 50 मिलीमीटर (मिमी) से कम दूरी पर होता है, तो ऑपरेटर गलत रिपोर्ट करता है, औरwhileलूप से बाहर निकल जाता है।

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