编程接口¶
1、语法入门¶
Python轻应用支持了 Python3 的基础语法,也支持了闭包、异常处理、列表理解、生成器等高级特性。本节内容只介绍实验环节涉及到的一些Python基础语法。
如果大家希望系统学习 Python3 语法,可以参考网站 Python3入门 或购买相关书籍进行系统学习,也可以参考 Micropython 官方文档 。
接下来,我们将简单介绍一下Python轻应用中的注释、数据运算、变量声明、函数定义、类定义、模块引用等基础知识。
a. 注释¶
单行注释用
#
,多行注释用三个引号“”“
包裹# 用井字符开头的是单行注释 """ 多行字符串用三个引号包裹 """
b. 常见数据类型和运算符¶
# 运算符四则运算 +/-/*// 1 + 2 # 3 2 – 1 # 1 1 * 2 # 2 2 / 1 # 1.0 整数相除结果自动转换为浮点数 1 * 2.0 #2.0 1 + 2.0 #2.0 #运算法取模 % 3 % 2 #1 #布尔值、逻辑运算 True False not True # False not False. #True False and True # False False or True # True 0 and 3 # 0 0 or 3 # 3 # 比较运算 == / != / > / < / >= /<= 和C语言Java语言一致 # 字符串类型 # 字符串可以用单引号也可以用双引号 "This is a string" 'This is a string' "This" + "is a string" # “This is a string" "This is a string"[0] # ‘T’ "{0} is a {1}".format("This", "string"). #This is a string # None是一个对象,不能用’==’判断是否相等,得用is # 0、空字符串、空列表、空字典、None都是flase,其他值都为True "Alibaba" is None # False None is None # True
c. 变量申明¶
# 变量不需要提前声明,变量必须初始化,如果访问为初始化的变量会报异常 var = 1
d. 控制语句¶
# for循环,输出 0,1,2 for i in range(2): print(i) # while循环, 输出 0,1,2 i = 0 while i < 2: print(i) i +=1
e. 函数定义¶
# 用def定义函数,例如 def add(a,b): return a + b # 函数调用 add(1,2)
f. 类定义¶
Python原生支持面向对象,Python的类(class)
# 定义类类型 #定义cat类,继承animal class cat(animal): eye_num = 2 # 类构造函数,当实例初始化时候被调用 def __init__(self, name): self.name = name # 实例方法,方法的第一个参数总是self,只能被当前实例使用 def say(self): print("I am cat, miao!") # 类方法,可以被类的所有实例共用,第一个参数总数当前类的对象 @classmethod def get_eye_num(cls): return cls.eye_num #静态方法 @staticmethod def run(): return "running" # 创建实例 kelly = Cat("kelly") print(kelly.say()) #调用类方法 kelly.get_eye_num() #调用静态方法 Cat.run()
g. 模块¶
用import导入模块
import driver from driver import uart from driver import uart,i2c import driver as dr
2、基础库¶
Python轻应用基础库实现对 MicroPython 原生能力的兼容和扩充。 这些库执行该模块的核心功能,并被设计作为标准 Python 库的替代选择。
以下的某些模块使用标准的Python名,但带有 u
前缀,例如名称为 ujson 而不是 json。这表示这样的一个模块是micro-library,即仅实现CPython模块功能的一个子集。
通过以不同方式命名它们, 用户可以选择编写Python级别的模块来扩展功能,从而更好地与CPython实现兼容(实际上,这正是由上述的 micropython-lib 实现的)。
在一些嵌入式平台上,添加Python级别的包装器模块以实现与CPython的命名兼容非常麻烦,而微模块可通过其u命名和非u命名来使用。该非u命名可被您的包路径中的同名文件覆盖。
cmath
– 复数的数学函数math
– 数学函数uarray
– 数组ubinascii
– 二进制/ASCII转换ucollections
– 容器uerrno
– 系统错误代码uhashlib
– 散列算法uheapq
– 堆队列算法uio
– 输入/输出流ujson
– JSON编解码uos
— 基本系统操作模块ure
– 正则表达式uselect
– 在一组流中等待事件usocket
— socket模块ussl
– 套接字对象的TLS / SSL包装器ustruct
– 打包和解压缩原始数据类型usys
– 系统相关函数utime
– 时间相关的函数uzlib
– zlib解压缩_thread
– 底层多线程