बदलना#

परिचय#

स्विच ब्लॉक छात्रों को ब्लॉक-आधारित कोडिंग से टेक्स्ट-आधारित कोडिंग में बदलाव करने में मदद करते हैं। स्विच ब्लॉक की मदद से छात्र ब्लॉक प्रोजेक्ट के अंदर सीधे पायथन कोड टाइप कर सकते हैं—जैसे कमांड, शर्तें, मान या फ़ंक्शन परिभाषाएँ लिखना—और साथ ही प्रोजेक्ट के बाकी हिस्से को ब्लॉक की मदद से ही बना सकते हैं। अलग-अलग ब्लॉक को उनके समकक्ष पायथन कमांड में भी बदला जा सकता है।

पायथन कमांड, मेथड और ऑपरेटर टाइप करना सीखने के लिए, VEX CTE पायथन API देखें।

क्योंकि स्विच ब्लॉक में पायथन कोड होता है, इसलिए प्रोजेक्ट के सही ढंग से चलने के लिए वर्तनी, विराम चिह्न और इंडेंटेशन सही होने चाहिए।

नीचे सभी स्विच ब्लॉक की सूची दी गई है:

स्विच ब्लॉक्स — ब्लॉक्स प्रोजेक्ट में पायथन कोड जोड़ें।

  • स्टैक — अन्य स्टैक ब्लॉकों के साथ अनुक्रम में चलने वाले पायथन कमांड टाइप करने के लिए एक स्थान प्रदान करता है।

  • सी ब्लॉक — पायथन नियंत्रण कोड टाइप करने के लिए एक स्थान प्रदान करता है, जैसे कि if, while, या for कथन।

  • सी एक्सपेंडेबल — एकाधिक शाखाओं के साथ पायथन नियंत्रण कोड टाइप करने के लिए एक स्थान प्रदान करता है, जैसे if, elif, या else।

  • बूलियन — पायथन कोड टाइप करने के लिए एक स्थान प्रदान करता है जो True या False लौटाता है।

  • रिपोर्टर — पायथन कोड टाइप करने के लिए एक स्थान प्रदान करता है जो एक मान लौटाता है।

  • हैट — पायथन फ़ंक्शन को परिभाषित करने के लिए एक स्थान प्रदान करता है।

ढेर#

स्टैक ब्लॉक पायथन कमांड टाइप करने के लिए एक स्थान प्रदान करता है जो अन्य स्टैक ब्लॉकों के साथ क्रम में चलते हैं।

स्टैक ब्लॉक#
[] :: custom-switch

एक स्टैक ब्लॉक में पायथन कोड की एक पंक्ति या कई पंक्तियाँ हो सकती हैं।

शुरू होने पर, यह 6-एक्सिस आर्म को एक स्थिति में ले जाने के लिए स्टैक ब्लॉक का उपयोग करता है।#
जब शुरू हो :: hat events
[Move the 6-Axis Arm to a standard position at the start of the project.]
[arm.move_to(120, 120, 75, False)] :: custom-switch

सी ब्लॉक#

The C Block provides a space to type Python control code, such as if, while, or for statements. Blocks placed inside the C Block run as part of that Python control structure.

सी ब्लॉक#
if [] :: custom-switch
अंत

पायथन कंट्रोल कोड जिसे सी ब्लॉक में उपयोग किया जा सकता है, उसमें निम्नलिखित शामिल हैं:

शुरू होने पर, यह जांचने के लिए एक सी ब्लॉक का उपयोग करता है कि क्या 6-एक्सिस आर्म किसी स्थिति तक पहुंच सकता है।#
जब शुरू हो :: hat events
[Check if the 6-Axis Arm can move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch
कंसोल पर [The 6-Axis Arm can't move to this position.] प्रिंट करें ◀ और कर्सर को अगली पंक्ति पर सेट करें
अंत

सी विस्तार योग्य#

C एक्सपेंडेबल ब्लॉक में आप कई शाखाओं वाले पाइथन कंट्रोल कोड टाइप कर सकते हैं, जैसे कि if, elif, या elseप्लस तीर का चयन करके अतिरिक्त शाखाएँ जोड़ी जा सकती हैं।

C विस्तार योग्य ब्लॉक#
if [] :: custom-switch-expand
अंत

पायथन कंट्रोल कोड जिसे सी एक्सपेंडेबल ब्लॉक में उपयोग किया जा सकता है, उसमें निम्नलिखित शामिल हैं:

शुरू होने पर, यह जांचने के लिए एक C एक्सपेंडेबल ब्लॉक का उपयोग करता है कि क्या 6-एक्सिस आर्म किसी स्थिति तक पहुंच सकता है।#
जब शुरू हो
[Check if the 6-Axis Arm can or can't move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch-expand
कंसोल पर [The 6-Axis Arm can't move to this position.] प्रिंट करें ◀ और कर्सर को अगली पंक्ति पर सेट करें
else [else:] :: custom-switch-expand
कंसोल पर [The 6-Axis Arm can move to this position.] प्रिंट करें ◀ और कर्सर को अगली पंक्ति पर सेट करें
अंत

बूलियन#

बूलियन ब्लॉक पायथन कोड टाइप करने के लिए जगह प्रदान करता है जो True या Falseलौटाता है। इसे षट्कोणीय इनपुट वाले ब्लॉकों के अंदर रखा जा सकता है।

बूलियन ब्लॉक#
<[] :: custom-switch>

एक बूलियन ब्लॉक में पायथन की शर्त हो सकती है।

पायथन शर्त के साथ बूलियन ब्लॉक#
<[bumper_a.is_pressed()] :: custom-switch>

एक बूलियन ब्लॉक तार्किक ऑपरेटरों का भी उपयोग कर सकता है:

पायथन लॉजिकल ऑपरेटर के साथ बूलियन ब्लॉक#
<[bumper_a.is_pressed() or bumper_b.is_pressed()] :: custom-switch>

एक बूलियन ब्लॉक तुलना ऑपरेटरों का उपयोग करके मानों की तुलना कर सकता है:

  • से बड़ा: >

  • से कम: <

  • बराबर: ==

  • अन्य तुलना ऑपरेटरों में <=, !=, और >= शामिल हैं

पायथन तुलना ऑपरेटर के साथ बूलियन ब्लॉक#
<[drivetrain.get_heading()> 100] :: custom-switch>
शुरू होने पर, यह जांचने के लिए एक बूलियन ब्लॉक का उपयोग करता है कि क्या 6-एक्सिस आर्म किसी स्थिति तक पहुंच सकता है।#
जब शुरू हो
[Check if the 6-Axis Arm can move to a position.]
यदि <नहीं <[arm.can_arm_reach_to(0, 0, 0)] :: custom-switch>> तो
कंसोल पर [The 6-Axis Arm can't move to this position.] प्रिंट करें ◀ और कर्सर को अगली पंक्ति पर सेट करें
अंत

रिपोर्टर#

रिपोर्टर ब्लॉक पाइथन कोड टाइप करने के लिए जगह प्रदान करता है जो एक मान लौटाता है। इसे गोलाकार इनपुट वाले ब्लॉकों के भीतर रखा जा सकता है।

रिपोर्टर ब्लॉक#
([] :: custom-switch)

एक रिपोर्टर ब्लॉक में पायथन कोड हो सकता है जो एक मान लौटाता है।

रिपोर्टर ब्लॉक जिसमें पायथन कोड है जो एक मान लौटाता है#
([arm.get_y()] :: custom-switch)

रिपोर्टर ब्लॉक में गणितीय ऑपरेटरों का उपयोग किया जा सकता है:

  • जोड़: +

  • घटाव: -

  • विभाजन: /

  • गुणन: *

पायथन जोड़ के साथ रिपोर्टर ब्लॉक#
([arm.get_y() + 45] :: custom-switch)
शुरू होने पर, 6-एक्सिस आर्म के चलने के दौरान वर्तमान y-स्थिति को प्रिंट करता है।#
जब शुरू हो
[Display the current y-position while the 6-Axis Arm moves.]
[भुजा v] को स्थिति x:(-100) y:(200) z:(100) [mm v] पर ले जाएं ◀ और प्रतीक्षा न करें
<[भुजा v] चलना बंद हो गया?> होने तक दोहराएं
कंसोल पर ([arm.get_y()] :: custom-switch) प्रिंट करें ◀ और कर्सर को अगली पंक्ति पर सेट करें
[0.25] सेकंड प्रतीक्षा करें
अंत

टोपी#

Hat ब्लॉक पाइथन फ़ंक्शन को परिभाषित करने के लिए एक स्थान प्रदान करता है। Hat के अंतर्गत संलग्न ब्लॉक उस फ़ंक्शन का मुख्य भाग बन जाते हैं।

टोपी ब्लॉक#
[] :: hat custom-switch

Hat ब्लॉक में एक पायथन फ़ंक्शन की परिभाषा लिखें। पैरामीटर कोष्ठकों के अंदर लिखें। यदि फ़ंक्शन पैरामीटर का उपयोग नहीं करता है, तो खाली कोष्ठकों का उपयोग करें।

पायथन फ़ंक्शन परिभाषा के साथ हैट ब्लॉक#
[def function_name(parameter):] :: hat custom-switch
शुरू होने पर, यह एक Hat ब्लॉक का उपयोग करके एक फ़ंक्शन को परिभाषित और कॉल करता है।#
[def increment_y_100():] :: hat custom-switch
[Create a function to increment the 6-Axis Arm.]
[भुजा v] की स्थिति को x:[0] y:[100] z:[0] [mm v] से बढ़ाएं ▶

जब शुरू हो :: hat events
[increment_y_100()] :: custom-switch