ควบคุม#
การแนะนำ#
การควบคุมใน Python ช่วยให้คุณบอกหุ่นยนต์ได้ว่าเมื่อใดควรรอ เมื่อใดควรทำซ้ำการกระทำ วิธีการตัดสินใจ และเมื่อใดควรยุติโครงการ
ด้านล่างนี้คือรายการของตัวควบคุมที่มีให้ใช้งาน รวมถึงเมธอดและคำหลักหลักของ Python:
wait– หยุดโปรเจกต์ชั่วคราวตามระยะเวลาที่กำหนดfor– ทำซ้ำรหัสสำหรับแต่ละรายการในลำดับif– รันโค้ดหากเงื่อนไขเป็นจริงif/else– รันโค้ดที่แตกต่างกันขึ้นอยู่กับเงื่อนไขif/elif/else– ตรวจสอบเงื่อนไขหลายรายการตามลำดับwhile– ทำซ้ำโค้ดในขณะที่เงื่อนไขเป็นจริงbreak– ออกจากลูปทันทีstop_program– ยุติโปรแกรมที่กำลังทำงานอยู่pass– ตัวยึดตำแหน่งที่ใช้เมื่อไม่จำเป็นต้องดำเนินการใดๆ
รอ#
wait หยุดชั่วคราวเป็นระยะเวลาที่กำหนดก่อนที่จะไปยังบรรทัดโค้ดถัดไป
Usage:wait(time, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ระยะเวลาที่ต้องรอ โดยระบุเป็นจำนวนเต็มบวกหรือทศนิยม |
|
หน่วยที่ใช้แสดงเวลาที่รอ: |
# Turn right for one second
robot.turn(RIGHT)
wait(1, SECONDS)
robot.stop()
สำหรับ#
for ทำซ้ำชุดการกระทำตามจำนวนครั้งที่กำหนด for สามารถใช้เพื่อวนซ้ำรายการในรายการ ทูเปิล พจนานุกรม ชุด สตริง หรือสำหรับจำนวนรอบที่กำหนดด้วย range
วิธีใช้:
for value in expression_list:
pass
ส่วนประกอบ |
คำอธิบาย |
|---|---|
|
ตัวแปรชั่วคราวที่ใช้เก็บค่าองค์ประกอบปัจจุบันในการวนซ้ำ |
|
ชุดขององค์ประกอบที่ถูกวนซ้ำ (เช่น รายการ, สตริง, ช่วง) |
# Move in a square path
for index in range(4):
robot.drive_for(FORWARD, 1, STEPS)
robot.turn_for(RIGHT, 90)
ถ้า#
if รันบล็อกโค้ดที่เยื้องเข้าไป ถ้าเงื่อนไขเป็น True
วิธีใช้:
if condition:
pass
ส่วนประกอบ |
คำอธิบาย |
|---|---|
|
นิพจน์หรือตัวแปรที่จะถูกตรวจสอบเมื่อคำสั่งทำงาน ถ้าเป็น |
# Turn when the Move button is pressed
while True:
if robot.get_button(MOVE):
robot.turn_for(RIGHT, 90)
wait(0.1, SECONDS)
ถ้า/มิฉะนั้น#
if และ else กำหนดว่าบล็อกโค้ดที่เยื้องเข้าไปจะทำงานโดยพิจารณาจากว่าเงื่อนไขเป็น True หรือ False
วิธีใช้:
if condition:
pass
else:
pass
ส่วนประกอบ |
คำอธิบาย |
|---|---|
|
นิพจน์หรือตัวแปรที่จะถูกตรวจสอบเมื่อคำสั่งทำงาน ถ้าเป็น |
# Drive while no button is pressed, stop when one is
while True:
if robot.get_button(MOVE):
robot.stop()
else:
robot.drive(FORWARD)
wait(0.1, SECONDS)
ถ้า/หรือถ้าไม่/มิฉะนั้น#
โครงสร้าง if/elif/else จะเลือกบล็อกโค้ดที่เยื้องเข้าไปว่าจะทำงานอย่างไร โดยขึ้นอยู่กับเงื่อนไข:
ifรันบล็อก ถ้าเงื่อนไขเป็นTrueelifตรวจสอบเงื่อนไขเพิ่มเติมเฉพาะเมื่อเงื่อนไขก่อนหน้าทั้งหมดเป็นFalseเท่านั้น สามารถใช้คำสั่งelifได้หลายคำสั่งelseจะรันบล็อกเฉพาะเมื่อไม่มีเงื่อนไขก่อนหน้าใดเป็นจริงTrue
วิธีใช้:
if condition:
pass
elif condition:
pass
else:
pass
ส่วนประกอบ |
คำอธิบาย |
|---|---|
|
นิพจน์หรือตัวแปรที่จะถูกตรวจสอบเมื่อคำสั่งทำงาน เงื่อนไขแรกที่เป็น |
# Change the LED color based on heading while turning
robot.turn(RIGHT)
while True:
if robot.get_heading() < 120:
robot.led.glow(OFF)
elif robot.get_heading() < 240:
robot.led.glow(BLUE)
else:
robot.led.glow(GREEN)
wait(0.2, SECONDS)
ในขณะที่#
while จะรันโค้ดซ้ำๆ ตราบใดที่เงื่อนไขเป็น Trueนอกจากนี้ยังสามารถใช้เป็น “ตลอดไป” โดยใช้ True เป็นเงื่อนไข หรือเป็น “รอจนกว่า” โดยเพิ่ม not เข้าไปในเงื่อนไข ดังแสดงในตัวอย่างด้านล่าง
วิธีใช้:
while condition:
pass
ส่วนประกอบ |
คำอธิบาย |
|---|---|
|
นิพจน์หรือตัวแปรที่จะถูกตรวจสอบก่อนการวนซ้ำแต่ละครั้ง ถ้าเป็น |
# Drive while no button is pressed, stop when one is
while True:
if robot.get_button(MOVE):
robot.stop()
else:
robot.drive(FORWARD)
wait(0.1, SECONDS)
# Wait until the Move button is pressed before driving
while not robot.get_button(MOVE):
wait(0.2, SECONDS)
robot.drive_for(FORWARD, 1, STEPS)
หยุดพัก#
break ออกจากลูปทันที break ใช้เพื่อออกจากลูปที่อาจจะวนซ้ำไปเรื่อยๆ
วิธีใช้:
break
พารามิเตอร์ |
คำอธิบาย |
|---|---|
คีย์เวิร์ดนี้ไม่มีพารามิเตอร์ |
# Stop driving after pressing the Move button
while True:
robot.drive(FORWARD)
if robot.get_button(MOVE):
break
wait(0.2, SECONDS)
robot.stop()
หยุดโปรแกรม#
stop_program ยุติโปรเจกต์ที่กำลังทำงานอยู่
Usage:stop_program()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Stop the project after pressing the Move button
while True:
robot.drive(FORWARD)
if robot.get_button(MOVE):
break
wait(0.2, SECONDS)
stop_program()
ผ่าน#
pass เป็นตัวแทนสำหรับโค้ดในอนาคต และสามารถใช้เพื่อหลีกเลี่ยงข้อผิดพลาดในลูปว่างเปล่า เงื่อนไข และฟังก์ชัน
วิธีใช้:
pass
พารามิเตอร์ |
คำอธิบาย |
|---|---|
คีย์เวิร์ดนี้ไม่มีพารามิเตอร์ |
if condition:
pass
def function():
pass