无线电轨智能车校内赛 | 在Thonny环境下如何学习Python基本语法?(第二部分)

01 Python基本语法


一、问题/目标

  这次夏令营智能车制作中需要 应用到 MicroPython , 针对高二学生部分同学没有学习过 Python 语言, -这里就在安装 Thonny 环境内学习一些基本 Python 基本语法, ·为后面研究示例程序打下基础。  这部分内容选自 Learn Python 网站的一些基本知识点。  上次视频中,  已经介绍了基本输出语句和变量类型, 接下来介绍其它基本Python语法。 建议大家一边观看, 一边在 Thonny 环境内练习。

GM1690161309_1280_720.MPG|_-7

二、基本原理

1、列表

  列表是Python语言中最具特色, 用途广泛的数据组织方式。 形式类似于数组,但所能容纳的数据类型非常广泛。 利用方括号定义一个空的列表, 使用 append 函数动态增加三个整型元素, 实际上,也可以直接在定义的时候就将1,2,3 放在方括号里面形成列表的元素。 利用列表下标访问列表中的 元素, 使用print进行显示, 右边前三个元素是输出内容。 使用 for 循环访问列表元素是最有效率的, 同样这个循环输出了列表中的内容。

GM1690161768_1280_720.MPG|_-5
  这里展示访问列表可能会出现的错误。  这里定义了三个元素的列表,  接下来输出该列表的第11个元素 l[10], 由于这个元素不存在, 所以程序至此运行出错, 并终止运行。 这是在访问列表元素的时候需要注意的情况。

GM1690162083_1280_720.MPG|_-5
  至此, 你可以尝试做一下这个练习。 请使用列表的 append 命令将数字 99, 100, 101 加入 numbers 中。 请把 hello world 两个单词加入 strings 列表中。 这里定义了具有三个人名的列表。 请将 names 中第二个人名幅值给 second_name。  究竟对应的 names 的下标是几?

GM1690162626_1280_720.MPG|_-7

2、基本运算

  下面介绍 Python 中的基本运算。 基本运算包括算术四则运算, 比如这里的加罚, 乘法, 除法运算, 按照先乘除, 后加减的 顺序执行运算, 右边对应着计算结果。 这里给出了取余数和幂乘运算,   百分号表示取整数相除之后的余数,  两个连续的乘号, 表示计算幂乘运算。  在Python中的逻辑运算则使用英文单词 and、or、not 等表示。

GM1690163097_1280_720.MPG|_-9

  对于字符串变量,  可以使用加号将它们串联在一起。 可以使用乘法对其进行复制扩充, 比如这里的 Hello 乘以 10,  最后形成 十个 hello 串联的字符串。

GM1690163228_1280_720.MPG|_-4
  列表也支持 加法和乘法运算符,  作用 和字符串有着异曲同工之妙, 加法是将两个列表合并,  乘法是将列表重复倍增。 比如这里是将原来的 1,2, 3 列表扩充到 九个元素的列表。 这些运算符号反映了 Python 语法的灵活性。

GM1690163404_1280_720.MPG|_-5
  这是关于列表运算的练习, 大家如果感兴趣可以停下来实验一下。  在这里主要说明关于列表两个常用到的函数。 一个是 len 函数, 它可以返回列表中元素的个数。  一个是 count 函数, 它可以返回列表中某个元素的个数。 这两个函数平时被用到的次数比较多。

GM1690163617_1280_720.MPG|_-3

3、字符串格式化

  字符串格式化是用来将特定对象转换成字符串中特定的格式, 我特别喜欢使用 Python 语言中经典的格式化方法。  比如这里是将 name 字符串嵌入前面的说明字符串中。  百分号 s, 表示将 name 对应的 John 进行替换。  最终输出的结果 就是 Hello John。 这里有一个字符串和一个整数变量,  这里是将它们分别以字符串和数字的形式,  替换前面的 %s, %d 两部分,  这是最终的输出结果。   %s, %d 是最常用到的l个格式化符号。

GM1690164031_1280_720.MPG|_-11

  这里给出了更多不同的格式化符号,  在用到的时候可以进行查阅。   对于 %s 格式化符号来讲,  它还可以用于输出任何类型的变量,  比如对于列表, 它是调用了列表的表达函数生成对应的字符串, 最后形成字符串格式话后的内容。

GM1690164217_1280_720.MPG|_-7

4、字符串操作

  如果把字符串看成有字符组成的有序列表, 那么它的很多操作可以利用 Python 列表的操作进行, 比如使用 len 可以返回字符串的长度, 也就是所有字符的个数。   可以使用 index 函数返回某一个元素对应的下标, 比如 在 Hello world! 中,第一个 字符 o 对应的下标为 4。   也可以使用 count 返回每一个元素的个数,  比如 l 在字符中的个数, 等于 3。  对于列表最为强大的操作方式就是所谓的 切片操作, 也就是通过下标获取列表中某一部分元素。 这种操作也适用于 字符串,  比如这里通过下标 3,7 获取字符中下标位于 3,6 之间的内容,  对应字符串的一个片段。  此外还可以应用不同的切片方法,  获得不连续分布的字符。  这里给出的两种方法, 实际上输出是相同的,  对于切片三元组的最后一个数字如果是 负一,  它实际上表示按照相反的方向获得该字符串, 最后输出该字符串的倒序。  最后, 再介绍一个非常有用的函数, 就是 split 函数,  它可以吧字符串按照某种分隔符进行切分,  这样就形成了切分后的列表。 这个功能在平时编程的时候用处非常大。  也是我最喜欢的一个函数。

GM1690164975_1280_720.MPG|_-28

5、条件操作

  条件操作是编程中重要流程控制方式。 Python 语言中使用两个 等号来判断两个变量是否相等, 还可以使用 大于小于号来判断两个数字变量的大小。  比如这里给出 x 取值是否等于 2, 等于 3 以及小于 3 的判断结果。  这种条件判断结果可以应用在 if 语句中。  这里给出了 if 语句的基本 用法。   根据对两个变量 name, age 的判断, 利用 and 、 or 分别对两个判断结果进行逻辑与运算和逻辑或运算, 最后根据结果分别执行相应的程序。  对于列表, 还有一个常用到的条件判断, 就是 in,  它主要用于判断每个变量的值是否与列表中每个元素相同。  比如这里, 判断 name 变量是否在列表中出现。 如果出现, in 返回 True 条件, 便执行后面的程序。  这里给出了 Python 语言中 if 语句较为完整的语法,   为了方便, 这里给出了两个条件变量,   这里使用 is 替代了 双等号来判断两个变量 是否属于同一个对象,  如果前面条件不成立, 则执行 elif 语句, 这个 elif 语句可以重复多次, 当前面 if, elif 条件都不成立, 则执行最后的 else 后面的语句。  这应该是 条件语句最为常用的形式了。  下面通过一个例子来说明,  这里 x 等于 2, 通过 if 语句判断 x 是否等于 2。 根据判断结果分别输出两个字符串。  这里给出的最终程序执行结果。  熟练掌握 if 判断语句, 正确实现编程的逻辑功能。

GM1690166125_1280_720.MPG|_-22

  最后介绍 not 操作符, 它是对条件结果取反,  也就是原来是 True, 经过not之后, 并输出 False,  反之, 对于 False 的结果,  它输出 TRUE。 利用 not 以及 and, or 可以形成更加复杂的逻辑表达式。

GM1690166257_1280_720.MPG|_-5

6、循环

  循环是编程中最为强大的功能, 它可以通过少量的语句成批次的完成大量的工作。   for 循环是最常用到的循环语句。  这个例子中, primes 列表包含有前四个质数, 这个 for 循环 是将列表中的数, 通过 print 输出。  这是利用 for 循环 对列表元素进行遍历。  可以使用 range 形成数字列表,  比如这里的 range(5) 表示 从 0 到 4 的五个整数。 对应的 0 ,1,2,3,4,  range 还可以生成从任意两个数字之间的整数,  比如 range (3,6) 表示了 3,4,5。 如果再增加一个参数, range 还可以形成不连续的整形数组,  这里给出了从 3 到 8 之间, 每隔 2 个数形成的数字。  利用 for 和 range 可以构成编程中常见到的循环操作。

GM1690166885_1280_720.MPG|_-14

  使用 while 语句可以构成另外一种循环结构。  它是先判断条件是否满足,  如果条件满足则重复进行。  比如这里对 count 是否小于 5 进行判断, 如果满足则重复执行下面的程序块。  最终输出 0,1,2,3,4 。

GM1690167023_1280_720.MPG|_-6

  在循环中, 通常是踹死 break 和 continue 来控制循环走向。  break 语句是终止循环, continue 则是结束当前循环, 开启下一次循环。   比如在这里的两个循环例子, 第一个 while 循环中, 当 count 大于等于 5 之后结束循环, 所以最终输出从 0 到 4 的整数。  第二个 for 循环中, 对于 x 除以 2 的余数等 0 , 也就是 x 为偶数的时候, 开启新的循环, 所以最终只输出 x 等于奇数的数值。   合理应用 for , while , break, continue , 可以形成灵活多变的程序功能。

GM1690167337_1280_720.MPG|_-8

  在 Python 语言中, 还可以把 else 语句和 while, for 配合使用,  也就是当 while, for 语句条件不满足的时候,  执行 else 语句后面的程序块。  这里给出了 while, for 两个循环的例子,  大家可以自行分析一下它们执行的结果。   由于这种语法区别于 C 语言, 所以平时我也不敢使用这种结构。

GM1690167540_1280_720.MPG|_-6

7、函数

  编程语言中的函数和数学中的函数概念不同, 它是用来实现模块化编程, 复用编程代码,提高编程效率的重要手段。  这里给出了函数定义的三个例子。  比如通过 def 可以定义在 Python 中的函数,  当在 程序中调用该函数的是, 就会执行函数中的语句。  第二个例子是带有参数的函数定义,  可以在调用时加上不同的参数, 可以改变函数执行的结果。  最后, 函数还可以返回一个结果,  比如这里的函数,就是返回两个参数的加法结果。  请大家在 Thonny 环境中, 输入上面三个代码。 这里给出了三个函数调用的形式,  以及运行之后对应的结果。  请大家在Thonny中进行测试一下。

GM1690168056_1280_720.MPG|_-13

  这里给出了函数的定义和调用的形式,  前面是函数的定义,  后面是函数的调用。  请注意最后一个带有返回数值的函数在调用的时候是通过 赋值语句完成的。

GM1690168186_1280_720.MPG|_-4

8、类和对象

  类和对象的概念对于初学者来讲稍微复杂了一点, 这是面向对象编程的基本手段。  类是将程序中的数据和处理函数进行了合并。  使用 class 来对应一个类。  通常它会包括有数据变量,  以及内部的处理函数。  在使用类的时候,  需要定义类的一个具体对象实例。 比如这里定义了一个类,  通过类定义了一个具体的对象。  后面可以通过这个对象来访问它的数据和内部函数。

GM1690168433_1280_720.MPG|_-10

  下面举例说明,  这里声明了类的一个对象,  可以通过对象 加上 点, 再加上属性的方式来访问对象内部的数据,  这里给出对应的数值。   不同的对象, 内部的数据各不相同,  比如这里定义了类的两个对象,  对于第二个对象, 修改了它的属性。  这两个对象就有了区别。  这说明同一个类, 不同的对象, 它们的属性存储空间是不同的。   类的函数调用则是相同的,  可以通过类的对象,  调用对应的内部函数,  大部分情况下, 不同的对象对应的函数调用都是相同的。  有一个函数比较特别, 就是这个初始化函数,  它是在类被声明对象的时候, 直接被调用的。  主要是对类中的变量进行初始化操作。  

  最后通过一个例子来说明类的使用, 类的确是一个重要,但复杂的概念。  这里定义了一个类。  内部的数据表征了该类别的属性,  它还有一个成员函数。   下面声明了该类别的一个对象, 并对它的属性进行了赋值。    这里又声明了第二个对象, 并对属性进行了初始化。  最后通过调用类的函数, 输出它们的内部属性结果。  可以看到, 每一个类调用相同的函数, 但输出的结果是根据它们各自的属性产生的。   类的概念在后面智能车编程中是会被用到的。

GM1690169086_1280_720.MPG|_-30

9、模块和软件包

  当Python程序变得越来越复杂的时候, 仅仅利用 函数和类的概念已经不能够解决所有的问题, 使用 模块的概念可以将一个大的程序分割成不同的模块。  所谓的模块, 就是将一些内部有些关联的 函数、 类 以及执行语句写在一个 Python 文件中,  使用 import 命令, 在别的程序文件中调用这些外部模块。    这些不同功能的模块可以独立进行编辑, 修改,分发和共享。   这里还有一个重要的概念, 那就是命名空间,  使用 from import 语句是将别的模块中所有对象的名字都增添到当前程序中,  这样就有可能改变当前程序所对应的变量和函数,  这一点需要特别的注意, 对于有可能重名的变量和函数, 是以最后出现的定义为准。  最后需要说明的是, 在模块中, 如果存在一些执行的命令,  这些命令也只是在 import 的时候被执行一次,  也就是所谓的模块的初始化, 即使 在实际执行时, 有可能被 import 多次, 这些代码也只是执行一次。

GM1690169636_1280_720.MPG|_-13

三、总结

  在这里对于 Python 语言的基本语法进行了介绍。学习Python语言不能够仅仅靠死记硬背,  不断的应用和练习, 才是把它转换成自己的实用工具的手段。

GM1690169897_1280_720.MPG|_-2

02 座资料


一、讲座视频

学习Python基本语法(第二部分)

二、讲座资料


■ 相关文献链接:

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/131888234