12826| 0
|
【chocho教程】micropython入门教程二 |
本帖最后由 Chocho2017 于 2018-5-10 14:59 编辑 第二章 microPython基础 在进行项目学习之前,我们先学习下microPython基础,以便对后面章节的学习。 关键字 我们知道在使用microPython时,实际上是调用相关的函数(方法),告诉主板怎么控制其外设,如GPIO引脚置高、置低,从而引发LED灯的亮灭变化,如控制AD输入,从而获取控制引脚的电压变化值等等。而在使用这些外设时候,外设本身是怎么配置的,我们并不关心,而是调用或导入相关的驱动模块进行使用,这和Python语法一样,需要用到import关键字。本章节将讲解一些常用关键字的使用。 import import关键字是导入模块,后面紧跟要导入的模块名称,如time,math等等。在microPython模块库中有大量的模块可以使用,要想使用这些文件需要用import语句把指定模块导入到当前程序中。 语法如下: 使用方法: 如果要导入多个模块,只需要在模块名之前用逗号进行分割: 注意:microPython语法中,注释是#符号,这点和C语言有区别。 microPython模块主要有三种,标准库模块(如time,math),第三方模块(如传感器模块HT1632),自定义模块(自己写的模块)。 from import microPython语句中还有另外一种导入模块的方法,确切的说是导入指定模块中的指定函数方法:from import。如from machine import Pin,从machine模块中导入Pin函数方法。 语法如下: 使用方法: if if语法和C语言、C++等非常类似,最大的区别就是冒号以及严格的缩进,这也是microPython语言区别其他编程语言的地方。 语法如下: 使用方法: 可以看到microPython语法中if是不需要用括号括起来的,取而代之的是:号。而如果出现多个语句判断时,elseif也与C语言有区别,是elif。 注意:这里需要注意一下,在python2中print函数使用时不用括号,而在python3中需要使用括号。uPyCraft IDE使用的microPython是基于python3的编程方式,因此这里需要加括号。 for for语句是microPython中的一个循环控制语句,任何有序的序列对象内的元素都可以遍历,比如字符串、列表list、元组等等。 语法如下: 使用方法: 代码中,i相当于目标,字符串变量s是遍历对象。当运行for语句时,每一次迭代,i都会从遍历对象s中取出一个新值。 for语句操作列表示例如下: for循环操作元组示例如下: 实验效果如下: while while语句和前面的for语句都是循环语句,所不同的是,while循环中的执行代码块会一直循环执行,直到当条件不满足时。microPython中的while循环语句通常被用在计数循环中。 语法如下: 使用方法: 实验效果如下: break 在前面的学习中,我们知道,for和while都是循环语句,但是,如果我们想在没有满足条件的情况下就跳出循环体,该怎么办了?这个时候我们就需要用到break语句来结束循环体,这和C语言中一样。 使用方法: 实现效果如下: 我们可以看到,x只打印出0、1、2并没有一直打印(True代表一直为真),因为我们设定了当x等于3时,执行break语句,这样,程序将跳出while循环体。 数据类型 microPython中的变量声明和C语言不同,在C语言中,定义一个变量必须定义出它的类型,如整型(int)、浮点型(float)、字符串类型(string)等等,而在microPython中就简单了,变量在定义的时候不用声明类型,但每个变量在使用前都必须赋值(初始值),变量赋值以后才能被创建。在microPython中,变量就是变量,它没有类型,我们所说的“类型”是变量所在内存中的对象类型。 microPython中有六个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典)。 Number 数字类型主要是指int、float、bool、complex(复数)。可以通过type()函数来查询变量所指的对象类型。 使用方法: 这样的程序在前面的教程中也学习过,定义一个数字变量a,并赋值1,然后打印出来。我们可以用type()函数来查询变量a的类型,代码如下: 输出结果如下: 可以看到,控制器告诉我们a是一个int型。除此之外,我们也可以用isinstance来判断: 输出结果如下: 返回True,说明通过isinstance()函数来判断a是否是int型,答案是肯定的。 String microPython中的字符串,需要用单引号或者双引号括起来。这两种表示方法在程序中完全一样,而且都允许在字符串内部把另外一种表示方法的符号包括进来,无须用反斜杠符号进行转义。 例如,我们可以这样使用: 也可以这样使用: 当然,也可以采用反斜杠'\'转义特殊字符。而在有些时候,程序里面的字符串很长,导致一个字符串需要扩展到多行显示,也可以在一行的末尾使用反斜杠'\',进行换行延续: 加上print(s)语句,通过uPyCraft IDE下载到主控板后,可以看到打印效果如下: 对于多行字符串延续,还有另外一种方式,使用三个连续的"符号将字符串括起来: 输出结果和之前两种有点差别,程序会在第一行和第二行之间自动加一个换行,于是您会看到,打印出来的s字符串会显示两行: microPython中的字符串和C语言中不同的是,microPython字符串不能被改变,例如向一个索引位置赋值语句,s[0]= 'c'会导致错误。 在做字符串连接的时候,可以使用"+"号,例如: 实验结果如下: 在使用字符串类型时,我们应当注意一下几点:
List List类型可以完成大多数集合类的数据结构,是microPython中使用最频繁的数据类型。List中元素的类型可以不同,它支持数字、字符串、列表(嵌套)。列表,需要用[]方括号括起来,并用逗号分隔开元素列表。列表可以被索引和截取,被截取后返回一个包含所需元素的新列表。 语法如下: 实验结果如下: 列表和microPython字符串的区别在于,列表中的元素是可以改变的,例如: 输出结果如下: 我们可以看到,列表a中的第一个元素改变了。 Tuple microPython中的Tuple(元组)和列表类似,区别在于元组中的元素不能修改,并且元组写在小括号里面,元素之间用逗号隔开,元素类型可以不同。 使用方法如下: 实验结果如下: 在使用元组时,我们需要注意一下几点:
Set 在microPython中,set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种。集合set可以被创建、添加、删除、交集、并集、差集。 使用方法如下: s是集合变量,并赋值一个boy成员。可以用print函数来打印: 显示结果如下: 集合的添加有两种方法,分别是add和update,但这两种方法有区别。add方法是把元素作为一个整体添加到集合中,而update是把元素拆分,作为单个元素传到集合,例如: 而在删除集合中的元素时,使用remove方法,具体操作如下: 输出结果如下: 字典 在microPython中,字典是另一种可变容器模型,可以存储任意类型对象。它是一个无序的集合,通过键来存取值,而不能采用索引。字典由键和键对应的值组成,且键和值一一对应。 字典的创建方法,示例如下: 字典是无序的,所以不能用索引来查找字典中的数据,需要通过键来查找,示例如下: 输出实验结果如下: 可以看到,当我们想访问字典中名称是什么的时候,只需要传递键‘name’就可以了。字典中,数据的修改也一样,需要传递键,例如: 实验输出结果如下: |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed