第1章 MicroPython 简介与语法

2020-02-171.2万
AI 快速预览详细 收起
本文介绍了MicroPython的基础知识和语法。MicroPython是一种专为微控制器设计的精简版Python,支持基本的Python 3语法。通过本文,您可以学习如何使用print输出、注释、缩进等基本语法,并掌握常量和变量的使用方法。MicroPython集成了解析器、编译器、虚拟机和类库,用户可以通过Python脚本语言实现硬件底层的访问和控制。

第1章 MicroPython

1.1 MicroPython简介

下面是网上关于MicroPython的介绍。

Damien George是一名计算机工程师,他每天都要使用Python语言工作,同时也在做一些机器人项目。有一天,他突然冒出了一个想法:能否用Python语言来控制单片机,进而实现对机器人的操纵呢? 要知道,Python是一款比较容易上手的脚本语言,而且有强大的社区支持,一些非计算机专业领域的人都选它作为入门语言。遗憾的是,它不能实现非常底层的操控,所以在硬件领域并不起眼。

Damien为了突破这种限制,他花了六个月的时间来打造MicroPython。它基于ANSI C标准,语法跟Python 3基本一致,拥有自家的解析器、编译器、虚拟机和类库。

微控制器通常以C编程,可以直接访问和控制寄存器来使用外围设备,为目标微控制器进行交叉编译和构建固件代码,并使用合适的编程器进行烧录,而MicroPython集成了所有这些步骤。借助MicroPython,用户完全可以通过Python脚本语言实现硬件底层的访问和控制,比如说控制LED灯泡、LCD显示器、读取电压、控制电机、访问SD卡等。

与桌面版本的Python不同,MicroPython是微控制器的精简版本,因此它并非支持所有Python的库和功能。当你学过Python后再学习MicroPython是很容易的事,但不是所有的Python语法都适用于MicroPython,这点要尤为注意。 点击查看MicroPython与Python的具体区别

1.2 MicroPython语法

1.2.1.1. print 输出

使用print()函数可以将数据打印到终端。

print()函数可以直接在终端执行,也可以写在Python文件中,通过运行文件来执行。例如

在终端使用:
第1章 MicroPython 简介与语法图1

在文件中使用:
第1章 MicroPython 简介与语法图2

注意:

当我们在uPyCraft交互环境下编写代码时,>>>是MicroPython解释器的提示符,不是代码的一部分。前面没有>>>或...的“Hello World!”为程序运行的结果。

print()函数中可以有多个字符串,用逗号“,”隔开。

示例:

>>> print("hello", "world!")
hello world!
print 默认输出换行,如果在末尾加上end=" "则不换行。

示例:

print("hello", end=" ")
print("world")

运行结果:

hello world

1.2.1.2. 注释

代码中的注释有助于我们理解代码,在程序运行时,uPyCraft会忽略注释。
单行注释
MicroPython中的单行注释以#开头,后面的文字直到行尾都算注释。
示例:

>>> print("hello world") #This is a annotation
hello world
多行注释

如果要进行多行的注释,可以使用多个#号, 三个单引号(''')或三个双引号(""")。
示例:

'''
This is a multi-line comment.
Prints hello world.
'''
print("hello world")

1.2.1.3. 缩进

MicroPython使用缩进来区分不同的代码块,不需要使用大括号 {} 。
if True:
  print ("True")
else:
  print ("False")
缩进的空格数是可变的,但是同一代码块缩进必须一致。

示例:

if True:
  print ("Answer")
  print ("True")
else:
 print ("Answer")
  print ("False")    # 缩进不一致,会导致运行错误
以上程序由于缩进不一致,执行后会出现类似以下错误
*test.py:6:2: unexpected indent
  print ("False")    # 缩进不一致,会导致运行错误
 ^
syntax finish.

1.2.1.4. help() 函数

调用 MicroPython的 help() 函数查看一些基本信息。

示例:

>>> help(max)  #查看max()函数的基本信息
object <function> is of type function
>>> 
>>> help(sys) #查看sys模块的一些信息
object <module 'sys'> is of type module
  __name__ -- sys
  path -- ['', '/lib']
  argv -- []
  version -- 3.4.0
  version_info -- (3, 4, 0)
  implementation -- (name='mi 0>
  stdout -- <io.FileIO 1>
  stderr -- <io.FileIO 2>
  modules -- {'flashbdev': <module 'flashbdev'>}
  print_exception -- <function>
>>> 
>>> help(sys.path)
object ['', '/lib'] is of type list
  append -- <ert -- <function>
  pop -- <function>
  remove -- <function>
  reverse -- <function>
  sort -- <function>

1.2.1.5. 常量、变量

常量

如10、100这样的数值或“hello world!”这样的字符串,就是常量。常量的值不可变,MicroPython提供了一个const关键字,表示其值不可更改。
示例:

from micropython import const 

a = const(33)
print(a)
变量

创建一个变量很简单,只需要起个名,给他赋予一个值,在赋值的时候不需要指定变量的数据类型,因为变量是一个引用,它通过赋值来访问不同数据类型的对象。这点与其他语言中的变量不同,要注意(关于数据类型在下一小节讲)。
示例:

>>> a = "abcd" #引用a指向一个字符串对象“abcd”
>>> print(a)
abcd
>>> a = 32 #引用a指向一个整型对象
>>> print(a2)
32
>>> a1 = a #a1指向引用a指向的对象
>>> print(a)
32

给变量命名必须遵循以下规则:
◆变量名只能包含数字、字母、下划线
◆变量名的第一个字符必须是字母或下划线
◆变量名区分大小写


持续更新

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(5)
泳
谢谢楼主分享。
glwz007
glwz007
谢谢分享!
DFrJ5KYVQaH
DFrJ5KYVQaH
欢迎搞下去
glwz007
glwz007
系列教程吗?继续写下去!
KIKI
KIKI
作者
回复glwz007
会一直更新
kylinpoet
kylinpoet
这个好,必须支持。
- 没有更多了 -