Skip to content

WoW! 让我们学一些Python基础编程吧

在上节课我们基于模板创建了一个ROS2的Python节点,所谓“模板”就是利用ROS2预制的包结构和文件来创建一个新的ROS2包及其功能节点。

然而,如果我们想更加灵活地调整ROS2功能节点的行为细节,那么我们就需要利用Python编程、从各种代码细节上来规范机器人的行为,以满足满足我们五花八门的需求,从而做到“如臂使指”。 通过本节课的自学,我们关于Python基础编程的目标效果是:

  • 掌握Python基础编程后,能够更加随心所欲地玩转ROS2功能节点开发。
  • 通过Python代码,精细化控制ROS2节点的行为细节。

掌握如何在vs code中编写运行Python代码

安装Python

Ubuntu系统中自带Python3,通常是Python3.8或Python3.10版本。可以通过以下命令检查:

bash
python3 --version

如果系统正常安装了Python3,命令行会返回类似如下的版本号:

bash
Python 3.13.0

在vs code中安装Python插件

在vs code中安装Python插件,参考添加 ROS 插件到 VS Code

vs code安装 python插件

在vs code中编写你的第一个Python程序

  1. 创建Python的工作目录

    bash
    cd ~
    mkdir -p robotPython/
  2. 打开vs code程序,并在菜单栏中选择File -> Open Folder...,选择刚才创建的工作目录robotPython: 01.13打开Python工作目录.png

  3. 新建Python代码文件,如下图: 01.13新建名为test.py的程序文件.png

  4. 注意:新建文件的类型为Python,如下图所示: 01.13文件类型选择Python.png

  5. 在新建代码文件中,输入如下代码:

python
print("Hello, World!")
print("Hello, Python!")
  1. Ctrl+s保存代码文件,文件名为test.py,如下图: 01.13代码文件名为test.py.png

  2. 在vs code中运行Python代码。打开vs code的终端窗口,如下图: 01.13打开vs code中自带的命令终端.png

  3. 在终端窗口中,输入如下命令运行Python代码:

bash
python3 ./test.py
  1. 运行结果如下图所示: 01.13运行代码并输出.png

至此,你已经掌握了如何在vs code中编写、运行Python代码。本节课后面的内容,请大家根据我们的简明自学提纲,在vs code中输入代码,并运行Python程序。在编写代码->运行代码->调试代码的过程中,逐步掌握Python编程的基本知识点。

Python编程有几个非常基础的常识,需要大家了解。在此,我给出这些常识的阅读材料的链接,请大家自行阅读:

  1. 运行 Python的三种方式
  2. 行与缩进
  3. 注释
  4. python保留字

备注:上述四条常识中,“行与缩进”是Python编程区别于很多其它编程语言的强制规范,如果代码缩进层次不正确,程序运行可能会出现程序员意料之外的错误或行为。我们可以使用vs code插件Blockman来可视化代码块,以帮助我们检查代码的缩进、对齐是否符合我们的预期。

循序渐进掌握必要的Python知识点

建议使用《菜鸟教程》网站作为Python的简明自学教程,各个知识点的讲解都非常清晰易懂,配合代码示例,便于理解和实践。下述各知识点后的网页链接即为相关的学习教程。

在本节我们暂且抛开基于ROS2的Python开发。按照认知规律,我们将循序渐进的掌握Python编程的知识点,最终达到能够编写、使用类库的目标:

  1. 【第一次练习课】变量和基本数据类型:Python3 基本数据类型
  2. 【第一次练习课】运算符:Python3 运算符
  3. 【第一次练习课】输入输出基础(print、input函数):print 输出等待用户输入
  4. 【第一次练习课】字符串操作与格式化:Python3 字符串,该链接中,至少需要知道:
    • 字符串的操作包括:Python 访问字符串中的值Python 字符串运算符
    • 字符串格式化:Python 字符串格式化f-string
    • 有点印象即可:Python三引号、Python 的字符串内建函数
  5. 【第二次练习课】控制语句:Python3 条件控制
  6. 【第二次练习课】循环语句:Python3 循环语句
  7. 【第三次练习课】列表、字典等容器类型操作:
  8. 【第三次练习课】函数:Python3 函数
  9. 【第四次练习课】模块与包的使用:Python3 模块
  10. 【第四次练习课】文件读写操作:文件读写Python3 File(文件) 方法
  11. 【第五次练习课】错误处理与异常:Python3 错误和异常
  12. 【第五次练习课】类与面向对象编程:Python3 面向对象

这个顺序更符合学习的渐进性,每个概念都是在前一个基础上自然延伸。特别是在控制语句与函数之间,添加了容器类型和错误处理的学习,这样可以先掌握基本的数据结构操作,再进入更复杂的函数抽象。同时,在类之前学习模块与包的使用,有助于理解Python的代码组织方式,为后续ROS2开发打下更好的基础。

Tips:如果上述链接的知识一时无法理解,那么你有三个解决方式:

  1. 在课堂上咨询指导教师;
  2. 善用我们课程网站的AI助手;
  3. 利用搜索引擎,搜索相关的知识点。

基于自学的提问,谨记我们先前提到的:

小结

在本节课中,我们学习了如何在vs code中编写、运行Python代码,并循序渐进地掌握了Python编程的基本知识点。通过这些知识点的学习,我们将能够更加灵活地控制ROS2节点的行为细节,为后续的ROS2开发打下坚实的基础。

在接下来的课程中,我们将继续深入学习ROS2的功能节点开发,结合Python编程的知识,逐步实现更复杂的机器人应用。

课后作业

练习1:变量和字符串格式化练习

  • 要求:
    1. 提示用户输入姓名和年龄
    2. 使用f-string格式化方式输出一句问候语
    3. 计算出100年后的年龄并输出
    4. 在输出中使用字符串运算符将姓名重复3次
  • 练习目的:要求同学们使用input()、int()、f-string等知识点完成练习。

练习2:数据类型和运算符练习

  • 要求:
    1. 提示用户输入两个数字(浮点数)
    2. 计算并输出这两个数的: 和, 差, 积, 商(保留2位小数).
  • 比较这两个数的大小,使用比较运算符输出比较结果
  • 练习目的:要求同学们使用float()、算术运算符、比较运算符等知识点完成练习。