ESP32 MicroPython基础知识速学③
在第一章中,我们知道MicroPython是Python的子集,所以两者基本的语法结构一样,35个关键字(区分大小写)也一样。Python是一个高级面向对象的编程语言,使用Python编程可以快速实现项目的开发。一般我们要执行Python可以在Window系统安装Python解析器,也可以在我们的小车主控芯片上执行Python程序,后续就让我们通过智能小车和大家一起学习Micropython编程吧。
对于使用者来说,有Python3的基础即可玩转Micropython,学会了Micropython也能随心驾驭Python3。
Python的程序文件拓展名为”.py”,比如我们新建main.py就是Python的程序文件,我们可以在里面编写程序。
1 Python运算符
在众多编程语言中,逻辑运算是少不了的,Python也是一样,也有运算符;在一些应用中我们想要实现相应的功能,就需要知道各种运算符的使用,这样才能处理我们想要功能代码。下面我们来详细介绍Python的各类运算符及其使用方法。
1.1 算术运算符
算术运算符就是对两个对象进行数学上的算术计算(加减乘除等等),比如1+2=3,其中1和2称为操作数,+ 号为运算符。Python常用的运算符如下表:
算术运算符 描述
- 加法,对两个对象进行相加运算,如1+2
- 减法,一个数减去另一个数,如1-2,2-1
/ 除法,一个数除以另一个数,如1/2
- 乘法,表示两个数相乘,或者返回一个字符串拼接
// 取整数,返回两个相除得到的商数的整数部分,如5//2 =2
% 取模除,返回两个相除的余数,如5%2=1 (整除后余1)
** 幂运算,返回X的Y次幂。如2**3 结果为8
1.2 赋值运算符、比较关系运算符
在编程开发中,我们经常使用到赋值运算,比如计算a=2+2,或者对一个对象进行赋值,a=”hello”+ “hi”等运算。即将运算符的右侧的值赋值给左侧的变量,其中”=“等于号就是赋值运算符。
通常我们编程过程中经常需要对两个对象进行比较,比较对象可以是字符串也可以是数值。下表罗列几个常见的比较关系运算符供大家学习。
比较运算符 描述
== 等于,用于判断两个对象是否相等,指的是两个对象的变量值是否相等,如a=2,b=2 则a==b
!= 不等于,和等于是相反的。
= 大于等于,用法和等于一致
<= 小于等于,用法和等于一致
5.2.3 位运算符
Python的按位运算符是对存储的bit为进行操作的,他们的运算对象是二进制的格式进行运算的。
位运算符 描述
& 按位与运算,其对应的位运算值都位1时结果为1,否则为0
| 按位或运算,两个对应二进制位有一个为1时结果为1,否则为0
^ 按位异或运算,对应位相异时,相同则为0,否则为1
~ 按位取反运算,对应二进制位进行取反,1变成0,0变成1
<< 左移运算,将二进制位全部左移,高位丢弃,低位补0右移运算,将二进制位全部右移,底位丢弃,高位补0
2 Python关键字认识
我们编程的第一步先要认识关键字,Python3关键字有35个,每一个关键字有不同的用途,认识他们有助于我们编程。本章就我们就开始认识Python的关键字。
2.1 查看关键字
函数help([object]):用于查看函数或者模块用途的详细说明,object参数为对象,如help(“keywords”)
我们可以使用Thonny软件输入命令查看Python的关键字,打开Thonny软件点击右下角选择“Thonny的解析器(默认)”选项
配置默认解析器
在Shell命令端可以看到“>>>”三个向右箭头表示等待输入命令。在Shell命令端输入命令:>>> help(“keywords”),可以看到输出所有关键字,再切换回连接小车模式
查看关键字
程序里面可以增加一些我们注释的内容,方便我们读程序,注释的文本不参与程序的运行。程序注释有两种方式,一种是单行注释“#”号表示,另一种是多行注释,一对三个小撇号表示。为了方便理解程序我们一般在程序中添加注释,Python 中单行注释以 # 开头,多行注释用三个单引号 ‘’’ 或者三个双引号 “”" 将注释括起来。
两种代码注释
2.2 模块导入
关键字 描述
import 用于导入模块,比如可以导入我们小车特有的模块
form 用于从模块中导入指定子类或者函数,可以减少资源使用
as 用于创建别名,也就是重命名的意思
我们在Thonny软件下新建main.py 程序,输入以下代码,保存后执行运行程序
# 关键字 import from as 使用实验
'''
这里是多行注释
关键字实验:import form as
print() 函数用于打印输出内容
'''
import time #导入time模块
from time import sleep #从time模块中导入sleep函数
from time import sleep as slp #从time模块中导入sleep函数并命名为slp
print('start gmtime') #打印输出
print(time.gmtime()) #从time模块中获取时间并打印输出时间
print('start sleep') #打印输出
sleep(1) #使用函数延时1秒钟
print('start slp') #打印输出
slp(1) #使用函数延时1秒钟
2.3 逻辑运算、布尔变量
关键字 描述
True 布尔变量,真的意思,也就是结果为1
False 布尔变量,假的意思,也就是结果为0
and 逻辑变量,两个语句都为True,则结果为True,否则结果为False
or 任意一个语句为True 则结果为True,否则结果为False
not 否定的意思,如果语句不为True 结果为True,否则结果为False
实验程序如下:
'''
布尔变量实验
True,False
'''
print("1>2 结果:",1>2) #布尔变量验证,正确结果是False
print("2>1 结果:",2>1) #布尔变量验证,正确结果是True
'''
逻辑运算
and or not
'''
a = (2 > 1) and (1 < 2)
print("a 的结果:",a)
b = (2 > 1) or (1 > 2)
print("b 的结果:",b)
c = not (2 < 1)
print("c 的结果:",c)
执行运行程序后可以看到输出结果
2.4 条件语句
关键字 描述
if 用于创建条件语句,且当条件为True时,才去执行if里面的代码块
elif 在条件语句(if)中使用,当if不是True是进入判断这条语句
else 在条件语句(if)中使用,且if条件语句为False时执行里面的代码块
条件语句 if elif else是我们常用的,elif和else必须配合if使用,他们不能单独使用。
实验程序和验证结果如下:
'''
if elif else使用举例
'''
#声明变量并赋值
a = 1
b = 2
c = 3
#执行判断语句
if a > b:
print("a 大于 b")
elif b > c:
print("b 不大于 c")
else :
print("a 不大于 b")
2.5循环语句、循环控制
关键字 描述
for 循环语句,用于循环执行程序,遍历序列。如列表、元组等
While 循环语句,循环继续执行,直到while的条件为false
continue 循环控制,用于在for循环或者while循环中结束当前迭代,并继续进行下一个迭代执行
break 循环控制,此关键字用于中断for循环或者while循环
参考代码
# for、while(循环语句)
print("-----循环语句开始-----\n")
languages = ["Welcome","python", "hello"]
for i in languages: print(i,end="|")
print("\n-----for语句结束-----")
a = 0
while a < 10:
print(a, end="|")
a += 1
print("\n-----while语句结束-----\n")
# continue、break(循环控制)
for i in range(15):
if i == 6:
continue #执行这个语句后不打印6出来
print(i, end="|")
print()
for i in range(15):
if i == 8:
break #执行这个语句后就退出这条语句执行只打印到7
print(i, end="|")
编写好程序后点击运行按钮,可以看到Shell窗口输出结果:
2.6其他常用关键字
关键字 | 描述 |
---|---|
pass | 用作程序占位符,对程序不会造成任何影响,空白代码。 |
def | 用于创建或者定义一个函数 |
return | 用于结束所定义的函数,并且返回值 |
try | 在try excep代码块中使用,定义了一个代码块,且在没有问题下执行块,如果包含有错误,可以为不同的错误类型定义不同的代码块值 |
except | 在try except代码块中使用,如果try引发块错误,并在有问题的情况下执行相应的代码块 |
def | 用于创建或者定义一个函数 |
finally | 在try excep代码块中使用,定义了一个代码块,当try except else块结束时,该代码将运行,不管引发拿住错误都执行finally代码块 |
raise | 用于引发异常,定义引发哪种错误,并提示错误信息 |
class | 类,用于创建一个或者定义一个类 |
lambda | 用匿名函数,用于创建一个特殊的 匿名函数 |
del | 删除对象,用于删除对象、删除变量、列表或者列表的一部分 |
global | 用于创建一个全局变量 |
nonlocal | 用于声明一个不是全局变量,标识外部的作用域的变量 |
end | 用于将结果输出到同一行,或者在输出在末尾添加不同的字符 |
智能小车购买链接
技术支持抖音:易驱达Easy Drive Coming
淘宝官方商城:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-18887194911.15.135014bdaKI6mV&id=715385110550