ROS2机器人少年创客营:Python第二课
课程名称
聪明的机器人------流程控制与逻辑
课程目标
- 掌握布尔逻辑:理解"真"与"假"是计算机判断的基础。
- 学会条件判断 :使用
if、elif、else让机器人根据环境做出不同反应。 - 理解循环结构 :使用
while和for让机器人不知疲倦地重复工作。 - 培养逻辑思维:能够画出简单的流程图,并将其转化为代码。
核心内容
机器人的智慧:布尔值
- 概念:计算机的世界只有两个状态------开和关,真和假。
- 数据类型 :
bool(布尔型)。True(真/是/1):比如"电量充足"。False(假/否/0):比如"碰到墙壁"。
- 比较运算符 :
==(等于)、!=(不等于)、>(大于)、<(小于)。- 注意 :
=是赋值(把东西放进盒子),==是判断(比较两个盒子里的东西是否一样)。
条件判断:如果...就...
-
语法结构 :
pythonif 条件: 做这件事 else: 做那件事 -
缩进(Indentation) :
- 比喻:这是Python的"家族族谱"。缩进(通常是4个空格或1个Tab)表示"属于"。
- 规则 :
if下面的代码必须缩进,表示"只有在满足条件时,才执行这些代码"。
-
多路分支(elif) :
- 就像红绿灯:如果是红灯->停;如果是绿灯->行;如果是黄灯->等待。
循环:不知疲倦的仆人
- while循环(当...的时候) :
- 比喻:只要(While)电池没电,就一直(循环)工作。
- 死循环 :如果条件永远为真(比如
while True),程序就会一直跑下去。这在机器人主程序中很常见(主循环)。
- for循环(数数循环) :
- 比喻:我要走5步。数1, 2, 3, 4, 5,每数一个数走一步。
- 场景:遍历列表(比如:依次经过A点、B点、C点)。
实践环节
任务:编写"智能避障与巡逻"程序
-
场景描述 :
- 你的机器人在一条走廊里巡逻。
- 它有一个传感器(变量
distance)。 - 如果前方无障碍(距离>10),它就继续前进。
- 如果前方有障碍(距离<=10),它就停下来并发出警报。
- 这个过程需要一直重复(循环)。
-
代码实现 :
python# 模拟传感器数据 distance = 50 print("机器人巡逻系统启动...") # 模拟一直运行的主循环 # 在实际操作中,我们通常用 while True 让机器人一直工作 running = True while running: print(f"当前距离障碍物: {distance} cm") if distance > 10: print(">> 前方畅通,继续前进...") # 模拟距离变近 distance = distance - 10 elif distance <= 10 and distance > 0: print(">> 警告!距离过近,减速...") distance = distance - 2 else: print(">> 危险!已接触障碍物,停止并报警!") running = False # 停止循环 print("巡逻结束。") -
进阶挑战 :
- 修改代码,让机器人在遇到障碍物时,不是停止,而是"后退5cm,然后左转90度"(用打印文字模拟动作)。
课后总结
今天我们赋予了机器人"思考"的能力。if让它学会了选择,while让它学会了坚持(重复)。没有逻辑的代码只是一堆字符,加上逻辑,它们就变成了智能。
课后思考
如果我写了一个while True:(死循环),但是忘记在循环里写让它停止的条件,或者忘记给它休息的时间,计算机会发生什么?(引导思考:死循环会导致程序卡死,CPU占用率飙升,就像机器人发疯了一样不停转圈)。