নিয়ন্ত্রণ#

ভূমিকা#

পাইথনের কন্ট্রোল আপনাকে রোবটকে বলে দিতে পারে কখন অপেক্ষা করতে হবে, কখন কোনো কাজের পুনরাবৃত্তি করতে হবে, কীভাবে সিদ্ধান্ত নিতে হবে এবং কখন প্রজেক্টটি শেষ করতে হবে।

নিম্নে উপলব্ধ কন্ট্রোলগুলোর একটি তালিকা দেওয়া হলো, যার মধ্যে মেথড এবং পাইথনের মূল কীওয়ার্ডগুলো অন্তর্ভুক্ত রয়েছে:

  • wait – একটি নির্দিষ্ট সময়ের জন্য প্রকল্পটি থামিয়ে দেয়।

  • for – একটি অনুক্রমের প্রতিটি আইটেমের জন্য কোডের পুনরাবৃত্তি করে।

  • if – কোনো শর্ত সত্য হলে কোডটি রান করে।

  • if/else – শর্তের উপর নির্ভর করে ভিন্ন কোড চালায়।

  • if/elif/else – একাধিক শর্ত ক্রমানুসারে পরীক্ষা করে।

  • while – যতক্ষণ একটি শর্ত সত্য থাকে, ততক্ষণ কোডটি পুনরাবৃত্তি করে।

  • break – লুপ থেকে অবিলম্বে বেরিয়ে যায়।

  • program_stop – চলমান প্রোগ্রামটি শেষ করে।

  • pass – যখন কোনো পদক্ষেপের প্রয়োজন হয় না তখন ব্যবহৃত প্লেসহোল্ডার।

অপেক্ষা করুন#

wait কোডের পরবর্তী লাইনে যাওয়ার আগে একটি নির্দিষ্ট সময়ের জন্য বিরতি দেয়।

Usage:
wait(time, units)

প্যারামিটার

বর্ণনা

time

অপেক্ষা করার সময়, যা একটি ধনাত্মক পূর্ণ সংখ্যা বা দশমিক সংখ্যা হিসেবে প্রকাশ করতে হবে।

units

অপেক্ষার সময় বোঝানোর একক: MSEC (ডিফল্ট) – মিলিসেকেন্ড, অথবা SECONDS

# Move the arm to the desired position and then blink the signal tower
arm.move_to(40, 140, 210, False)
wait(1, SECONDS)
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)

জন্য#

for একটি নির্দিষ্ট সংখ্যক বার একগুচ্ছ ক্রিয়ার পুনরাবৃত্তি করে। for তালিকা, টাপল, ডিকশনারি, সেট, স্ট্রিং-এর আইটেমগুলির মধ্যে লুপ করতে, অথবা range সহ একটি নির্দিষ্ট সংখ্যক লুপের জন্য ব্যবহার করা যেতে পারে।

ব্যবহার:

for value in expression_list:
    pass

উপাদান

বর্ণনা

value

একটি অস্থায়ী ভেরিয়েবল যা পুনরাবৃত্তির বর্তমান উপাদানটি সংরক্ষণ করে।

expression_list

যেসব উপাদানের মধ্য দিয়ে লুপ চালানো হচ্ছে (যেমন, লিস্ট, স্ট্রিং, রেঞ্জ)।

# Move the arm 4 times by 100 millimeters on the y axis
for index in range(4):
    arm.move_inc(0, 100, 0)

যদি#

যদি শর্তটি True হয়, তাহলে if হয় তবে ইনডেন্ট করা কোড ব্লকটি চলে।

ব্যবহারবিধি:

if condition:
    pass

উপাদান

বর্ণনা

condition

একটি এক্সপ্রেশন বা ভেরিয়েবল যা স্টেটমেন্টটি চলার সময় যাচাই করা হয়। যদি এটি Trueহয়, তাহলে if ব্লকের ভেতরের কোডটি এক্সিকিউট হয়; যদি এটি Falseহয়, তাহলে ব্লকটি এড়িয়ে যাওয়া হয়।

# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    print("\033[2J")
    print(brain.timer_time(SECONDS))
    wait(50, MSEC)
    if arm.is_done():
        brain.timer_reset()

যদি/অন্যথা#

if and else determine which indented block of code runs based on whether the condition is True or False.

ব্যবহারবিধি:

if condition:
    pass
else:
    pass

উপাদান

বর্ণনা

condition

একটি এক্সপ্রেশন বা ভেরিয়েবল যা স্টেটমেন্টটি চলার সময় যাচাই করা হয়। যদি এটি Trueহয়, তাহলে if ব্লকের ভেতরের কোডটি এক্সিকিউট হয়; যদি এটি Falseহয়, তাহলে এর পরিবর্তে else ব্লকের ভেতরের কোডটি এক্সিকিউট হয়।

# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    if arm.is_done():
        brain.timer_reset()
    else:
        print("\033[2J")
        print(brain.timer_time(SECONDS))
    wait(50, MSEC)

if/elif/else#

if/elif/else কাঠামোটি শর্তের উপর ভিত্তি করে নির্বাচন করে যে কোন ইনডেন্টেড কোড ব্লকটি চলবে:

  • if তার ব্লকটি চালায় যদি শর্তটি True হয়।

  • elif অতিরিক্ত শর্তগুলো কেবল তখনই যাচাই করে যখন পূর্ববর্তী সকল শর্ত Falseহয়। একাধিক elif স্টেটমেন্ট ব্যবহার করা যেতে পারে।

  • else তার ব্লকটি তখনই চালায় যদি পূর্ববর্তী কোনো শর্তই True না হয়।

ব্যবহারবিধি:

if condition:
    pass
elif condition:
    pass
else:
    pass

উপাদান

বর্ণনা

condition

একটি এক্সপ্রেশন বা ভেরিয়েবল যা স্টেটমেন্টটি চলার সময় যাচাই করা হয়। প্রথম যে শর্তটি True হয়, সেটিই নির্ধারণ করে কোন ব্লকটি এক্সিকিউট হবে; যদি কোনোটিই Trueনা হয়, তাহলে else ব্লকটি চলে।

# Change the signal tower light if arm can reach to the desired position
while True:
    if arm.can_arm_reach_to(200, 200, 200):
        signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)
    elif arm.can_arm_reach_to(300, 300, 300):
        signal_tower.set_color(SignalTower.GREEN, SignalTower.BLINK)
    else:
        signal_tower.set_color(SignalTower.ALL, SignalTower.OFF)
    wait(50, MSEC)

যখন#

while যতক্ষণ শর্তটি Trueথাকে, ততক্ষণ কোডটি বারবার চালায়। এটিকে True শর্ত হিসেবে ব্যবহার করে “forever”-এর মতো, অথবা শর্তের সাথে not যোগ করে “wait until”-এর মতোও ব্যবহার করা যায়, যেমনটা নিচের উদাহরণগুলোতে দেখানো হয়েছে।

ব্যবহারবিধি:

while condition:
    pass

উপাদান

বর্ণনা

condition

একটি এক্সপ্রেশন বা ভেরিয়েবল যা প্রতিটি পুনরাবৃত্তির আগে পরীক্ষা করা হয়। যদি এর মান Trueহয়, লুপটি চলতে থাকে; যদি এর মান Falseহয়, লুপটি থেমে যায়।

# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    if arm.is_done():
        break
    else:
        print("\033[2J")
        print(brain.timer_time(SECONDS))
    wait(50, MSEC)

# Blink blue light until the move is completed
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)
arm.move_to(-100, 200, 100, False)
while not arm.is_done():
    wait(0.2, SECONDS)
signal_tower.set_color(SignalTower.BLUE, SignalTower.ON)

বিরতি#

break একটি লুপ থেকে অবিলম্বে বেরিয়ে যায়। break এমন লুপ থেকে বেরিয়ে আসতে ব্যবহার করা যেতে পারে যা অন্যথায় অনন্তকাল ধরে চলতে থাকবে।

# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    if arm.is_done():
        break
    else:
        print("\033[2J")
        print(brain.timer_time(SECONDS))
    wait(50, MSEC)

প্রোগ্রাম_স্টপ#

program_stop একটি চলমান প্রজেক্ট বন্ধ করে।

Usage:
brain.program_stop()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

# Stop the project until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    if arm.is_done():
        break
    else:
        print("\033[2J")
        print(brain.timer_time(SECONDS))
    wait(50, MSEC)
brain.program_stop()

পাস#

pass হলো ভবিষ্যতের কোডের জন্য একটি প্লেসহোল্ডার এবং এটি খালি লুপ, কন্ডিশনাল ও ফাংশনে ত্রুটি এড়াতে ব্যবহার করা যেতে পারে।

if condition:
    pass

def function():
    pass