2. MicroPython基础
MicroPython文档: http://micropython.86x.net/en/latet/esp32/quickref.html#
MicroPython 是编程语言 Python3 的精简高效实现,语法和 Python3 保持一致,但只实现了 Python 标准库的一小部分,并且经过优化,可以在 MCU , WIFI SOC 等资源受限的环境中使用,所以我们在使用 MicroPython 需要了解其语法。
2.1 注释
在Python中使用"#"进行单行注释,使用三个单引号 '''...''' 或3个双引号 """...""" 进行多行注释。注释对于代码的可读性和维护都非常重要。
#这个是单行注释
'''
这个是多行注释
'''
"""
这个也是多行注释
"""
2
3
4
5
6
7
8
需要注意的是,在MicroPython中是不需要在语句的结尾加分号的。
2.2 运算符
算术(数学)运算符:
下表中说明的a=10,b=5
2.3 数据类型转换
2.4 字符串
字符串的三种定义方式-> 单引号定义法; 双引号定义法; 三引号定义法; 其中,单引号定义法,可以内含双引号; 双引号定义法,可以内含单引号 ;并且可以使用转义字符(\)来将引号解除效用,变成普通字符串。
name = '立创开发板' #单引号定义法
name = "立创开发板" #双引号定义法
name = """立创开发板""" #三引号定义法
2
3
2.4.1 字符串拼接
name = 'LCKFB'
print("hello " + name)
2
注意:字符串无法和非字符串变量进行拼接
name = 'LCKFB'
print("hello " + name, end='')
2
默认print语句输出内容会自动换行,在print语句中,加上 end=‘’ 即可输出不换行了。
使用print()函数可以将数据打印到终端。
2.4.2 字符串格式化
我们可以通过如下语法,完成字符串和变量的快速拼接。
如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位。
name = "张三"
age = 18
weight = 140.54
message = "我叫%s,今年%d岁,体重%f斤" % (name, age, weight)
print(message)
2
3
4
5
注意:这种写法不做精度控制也不理会类型。
2.5 判断语句
if语句的基本格式
if age >= 18:
print("你是一个成年人了")
2
归属于if判断的代码语句块,需在前方填充4个空格缩进。
Python通过缩进判断代码块的归属关系。
if...else语句格式
if age >= 18:
print("你的年龄大于等于18岁")
elif age > 10:
print("你的年龄大于10岁并且小于18岁")
else:
print("你的年龄小于等于10岁")
2
3
4
5
6
2.6 循环语句
2.6.1 while循环
i = 0
while i < 10:
print("i = %d" % i)
i += 1
2
3
4
2.6.2 for循环
name = "LCKFB"
for x in name:
print(x)
2
3
语法一:range(num)
range语句是用于获得一个数字序列。指的是从0开始,到num结束(不含num本身)
for x in range(5):
print(x)
2
语法二:range(num1, num2)
for x in range(5, 10):
print(x)
2
指的是从num1开始,到num2结束(不含num2本身)
2.7 函数
函数是组织好的,可重复使用的,用来实现特定功能的代码段。 函数的定义:
def 函数名(传入参数):
函数体
return 返回值
2
3
注意: 如果函数没有使用return语句返回数据,会返回None这个字面量;在if判断中,None等同于False;定义变量,但暂时不需要变量有具体值,可以用None来代替。
使用 global关键字 可以在函数内部声明变量为全局变量,相当于C语言里的static。
def test():
global num
num = 200
print(num)
2
3
4
2.8 类和继承
在Python中,可以通过定义类来实现面向对象编程。类包含数据和函数,数据保存在类的属性中,而函数保存在类的方法中。通过创建类,可以生成相同类型(或者父类)的多个对象,它们共享相同的属性和方法。
继承是指一个类可以派生出另一个子类,而子类继承了父类的属性和方法。子类可以进一步重载父类的方法或者添加新的属性和方法,从而实现对父类的扩展。
- 定义类:
使用 class 关键字定义一个类,并使用代码块来编写类的属性和方法。例如:
class MyClass:
def __init__(self, param):
self.param = param
def method(self):
# 方法实现
pass
2
3
4
5
6
7
- 实例化对象:
通过调用类的构造函数,可以创建类的实例(对象)。例如:
my_object = MyClass("value")
- 访问属性和调用方法:
使用对象名后跟 . 来访问对象的属性和方法。例如:
value = my_object.param
my_object.method()
2
- 继承:
在 microPython 中,您可以使用继承来创建一个类从另一个类继承属性和方法。通过继承,子类可以获得父类的特征并添加自己的特定功能。例如:
class ChildClass(MyClass):
def __init__(self, param, child_param):
super().__init__(param)
self.child_param = child_param
def child_method(self):
# 子类方法实现
pass
2
3
4
5
6
7
8
在上面的示例中,ChildClass 继承了 MyClass,并添加了自己的属性和方法。super().init(param) 调用父类的构造函数。
- 多重继承: microPython 支持多重继承,即一个类可以从多于一个父类继承。多重继承可通过在类定义中列出多个父类来实现。例如:
class ChildClass(ParentClass1, ParentClass2): # 类定义
pass
2
这些是 microPython 中类和继承的基本用法。类和继承是面向对象编程的核心概念,可以帮助您组织和抽象代码,实现代码的重用和扩展性。