Điều khiển#
Giới thiệu#
Lập trình điều khiển bằng Python cho phép bạn ra lệnh cho robot khi nào cần chờ, khi nào cần lặp lại hành động, cách đưa ra quyết định và khi nào cần kết thúc dự án.
Dưới đây là danh sách tất cả các điều khiển, bao gồm các phương thức và từ khóa cốt lõi của Python:
wait– Tạm dừng dự án trong một khoảng thời gian nhất định.for– Lặp lại mã cho mỗi mục trong một chuỗi.if– Chạy mã nếu điều kiện đúng.if/else– Chạy mã khác nhau tùy thuộc vào điều kiện.if/elif/else– Kiểm tra nhiều điều kiện theo thứ tự.while– Lặp lại mã khi một điều kiện đúng.break– Thoát khỏi vòng lặp ngay lập tức.stop_program– Kết thúc chương trình đang chạy.pass– Trình giữ chỗ được sử dụng khi không cần hành động nào.
Chờ đợi#
wait tạm dừng trong một khoảng thời gian cụ thể trước khi chuyển sang dòng mã tiếp theo.
Usage:wait(time, units)
Thông số |
Sự miêu tả |
|---|---|
|
Khoảng thời gian chờ đợi, được thể hiện dưới dạng số nguyên dương hoặc số thập phân. |
|
Đơn vị biểu thị thời gian chờ: |
# Move right for one second, then stop
robot.move_at(90)
wait(1, SECONDS)
robot.stop_all_movement()
Vì#
for lặp lại một tập hợp các hành động một số lần cụ thể. for có thể được sử dụng để lặp qua các mục trong danh sách, bộ dữ liệu, từ điển, tập hợp, chuỗi hoặc cho một số vòng lặp được chỉ định với range.
Cách sử dụng:
for value in expression_list:
pass
Các thành phần |
Sự miêu tả |
|---|---|
|
Một biến tạm thời lưu trữ phần tử hiện tại trong vòng lặp. |
|
Tập hợp các phần tử được lặp qua (ví dụ: danh sách, chuỗi, phạm vi). |
# Move in a square path.
for index in range(4):
robot.move_for(50, 0)
robot.turn_for(RIGHT, 90)
# Print each item in the list
colors = ["Red", "Green", "Blue"]
for color in colors:
robot.screen.print(color)
robot.screen.next_row()

Nếu như#
if chạy khối mã thụt lề nếu điều kiện là True.
Cách sử dụng:
if condition:
pass
Các thành phần |
Sự miêu tả |
|---|---|
|
Một biểu thức hoặc biến được kiểm tra khi câu lệnh được thực thi. Nếu nó là |
# Kick when the screen is pressed
while True:
if robot.screen.pressing():
robot.kicker.kick(MEDIUM)
wait(0.1, SECONDS)
Nếu/Ngược lại#
if và else xác định khối mã thụt lề nào sẽ chạy dựa trên việc điều kiện là True hay False.
Cách sử dụng:
if condition:
pass
else:
pass
Các thành phần |
Sự miêu tả |
|---|---|
|
Một biểu thức hoặc biến được kiểm tra khi câu lệnh được thực thi. Nếu nó là |
# Show one emoji when the screen is pressed,
# and a different emoji when not pressed
while True:
if robot.screen.pressing():
robot.screen.show_emoji(EXCITED)
else:
robot.screen.show_emoji(BORED)
wait(0.1, SECONDS)
If/Elif/Else#
Cấu trúc if/elif/else lựa chọn khối mã thụt lề nào sẽ được thực thi dựa trên các điều kiện:
ifchạy khối lệnh của nó nếu điều kiện làTrue.elifchỉ kiểm tra các điều kiện bổ sung nếu tất cả các điều kiện trước đó đều làFalseCó thể sử dụng nhiều câu lệnhelif.elsechỉ chạy khối lệnh của nó nếu không có điều kiện nào trong các điều kiện trước đó làTrue.
Cách sử dụng:
if condition:
pass
elif condition:
pass
else:
pass
Các thành phần |
Sự miêu tả |
|---|---|
|
Một biểu thức hoặc biến được kiểm tra khi câu lệnh được thực thi. Điều kiện đầu tiên đúng ( |
# Move the robot forward or reverse
# based on the position of the joystick
def when_axis_changed():
position = controller.axis1.position()
if position > 0:
robot.move_at(0)
elif position < 0:
robot.move_at(180)
else:
robot.stop_all_movement()
controller.axis1.changed(when_axis_changed)
Trong khi#
Vòng lặp while sẽ chạy mã liên tục miễn là điều kiện TrueNó cũng có thể được sử dụng như một vòng lặp “vĩnh viễn” bằng cách sử dụng True làm điều kiện, hoặc một vòng lặp “chờ cho đến khi” bằng cách thêm not vào điều kiện, như được hiển thị trong các ví dụ bên dưới.
Cách sử dụng:
while condition:
pass
Các thành phần |
Sự miêu tả |
|---|---|
|
Một biểu thức hoặc biến được kiểm tra trước mỗi lần lặp. Nếu nó bằng |
# Keep the LEDs green while the robot is moving
robot.move_for(200, 0, wait=False)
while robot.is_move_active():
robot.led.on(ALL_LEDS, GREEN)
wait(50, MSEC)
robot.led.on(ALL_LEDS, BLACK)
while True:
# Continually flash all LEDs red then green.
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
# Wait until the screen is pressed before
# turning off the LEDs
while not robot.screen.pressing():
robot.led.on(ALL_LEDS, RED)
wait(50, MSEC)
robot.led.on(ALL_LEDS, BLACK)
Phá vỡ#
break thoát khỏi vòng lặp ngay lập tức. break có thể được sử dụng để thoát khỏi các vòng lặp mà nếu không sẽ lặp vô hạn.
# Flash LEDs until the screen is pressed
while True:
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
if robot.screen.pressing():
break
# Turn the LEDs Off
robot.led.off(ALL_LEDS)
Dừng chương trình#
stop_program kết thúc một dự án đang chạy.
Usage:robot.stop_program()
Thông số |
Sự miêu tả |
|---|---|
Phương pháp này không có tham số. |
# Stop the project once the screen is pressed
while True:
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
if robot.screen.pressing():
robot.stop_program()
Vượt qua#
pass là một ký tự giữ chỗ cho mã lệnh trong tương lai và có thể được sử dụng để tránh lỗi trong các vòng lặp rỗng, câu lệnh điều kiện và hàm.
if condition:
pass
def function():
pass