编程接口

1、语法入门

Python轻应用支持了 Python3 的基础语法,也支持了闭包、异常处理、列表理解、生成器等高级特性。本节内容只介绍实验环节涉及到的一些Python基础语法。


如果大家希望系统学习 Python3 语法,可以参考网站 Python3入门 或购买相关书籍进行系统学习,也可以参考 Micropython 官方文档


接下来,我们将简单介绍一下Python轻应用中的注释、数据运算、变量声明、函数定义、类定义、模块引用等基础知识。


a. 注释

单行注释用 #,多行注释用三个引号 “”“ 包裹

# 用井字符开头的是单行注释
"""
多行字符串用三个引号包裹
"""
Copy to clipboard

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
Copy to clipboard

c. 变量申明

# 变量不需要提前声明,变量必须初始化,如果访问为初始化的变量会报异常
var = 1
Copy to clipboard

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
Copy to clipboard

e. 函数定义

# 用def定义函数,例如
def add(a,b):
    return a + b
# 函数调用
add(1,2)
Copy to clipboard

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()
Copy to clipboard

g. 模块

用import导入模块

import driver
from driver import uart
from driver import uart,i2c
import driver as dr
Copy to clipboard

2、基础库

Python轻应用基础库实现对 MicroPython 原生能力的兼容和扩充。 这些库执行该模块的核心功能,并被设计作为标准 Python 库的替代选择。


以下的某些模块使用标准的Python名,但带有 u 前缀,例如名称为 ujson 而不是 json。这表示这样的一个模块是micro-library,即仅实现CPython模块功能的一个子集。

通过以不同方式命名它们, 用户可以选择编写Python级别的模块来扩展功能,从而更好地与CPython实现兼容(实际上,这正是由上述的 micropython-lib 实现的)。


在一些嵌入式平台上,添加Python级别的包装器模块以实现与CPython的命名兼容非常麻烦,而微模块可通过其u命名和非u命名来使用。该非u命名可被您的包路径中的同名文件覆盖。