ROS2机器人少年创客营:Python第二课

ROS2机器人少年创客营:Python第二课

课程名称

聪明的机器人------流程控制与逻辑

课程目标
  • 掌握布尔逻辑:理解"真"与"假"是计算机判断的基础。
  • 学会条件判断 :使用if、elif、else让机器人根据环境做出不同反应。
  • 理解循环结构 :使用while和for让机器人不知疲倦地重复工作。
  • 培养逻辑思维:能够画出简单的流程图,并将其转化为代码。
核心内容

机器人的智慧:布尔值

  • 概念:计算机的世界只有两个状态------开和关,真和假。
  • 数据类型 :bool(布尔型)。
    • True(真/是/1):比如"电量充足"。
    • False(假/否/0):比如"碰到墙壁"。
  • 比较运算符 :
    • ==(等于)、!=(不等于)、>(大于)、<(小于)。
    • 注意 :=是赋值(把东西放进盒子),==是判断(比较两个盒子里的东西是否一样)。

条件判断:如果...就...

  • 语法结构 :

    python 复制代码
    if 条件:
        做这件事
    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占用率飙升,就像机器人发疯了一样不停转圈)。

相关推荐
jimy111 分钟前
C++ 中的 `T&&`:右值引用与转发引用
开发语言·c++
wflynn34 分钟前
GitHub 今日推荐|Edge0:让大号 MoE 模型在一台 Mac 上流式跑起来
python·开源·github
2601_967980111 小时前
python之用scapy分层解析pcap报文(Ethernet帧、IP数据包、TCP数据包、UDP数据包、Raw数据包)
python·scapy·pcap·协议分析·网络数据包
心疼你的一切1 小时前
Python自动发邮件实战定时发报表
大数据·开发语言·python
会编程的小孩2 小时前
C++ 定时器
c++
卡提西亚3 小时前
FastAPI基础入门
python·fastapi
fanruitian3 小时前
python 机器学习 ML LinearRegression KNN KMeans
python·机器学习·kmeans
鱼宵3 小时前
取集合第一个元素,Java 为什么要写三种写法?
java·windows·python·java21
卷无止境3 小时前
给AI装上一双眼睛:快速构建代码验证器的思路与落地方案
后端·python
沫璃染墨3 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html