编程接口

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命名可被您的包路径中的同名文件覆盖。