深色模式
第 6 章:语法小结与常用工具
本章能学到什么
- 列表:一次装下一组数据(为读多路传感器做铺垫)
- 用
def定义自己的函数 import与模块的概念
三大结构回顾
| 结构 | 关键字 | 一句话 |
|---|---|---|
| 顺序 | —— | 从上往下,一行一行执行 |
| 判断 | if / elif / else | 看条件,决定走哪条路 |
| 循环 | for / while | 满足条件就重复执行 |
所有程序,无论多复杂,都是这三种结构拼出来的。
列表:一排带编号的盒子
变量一次只能装一个值,列表一次能装一排:
python
pins = [10, 11, 12, 13] # 四个循迹探头的引脚号
readings = [0, 1, 0, 1] # 四个探头读到的值
print(pins[0]) # 10(下标从 0 开始)
print(len(pins)) # 4(列表长度)
# 遍历:把列表里的每个元素挨个取出来
for p in pins:
print(f"读取 GP{p}")列表和 for 循环是绝配。第 12 章读四路循迹传感器时,会看到:
python
sensors = [Pin(p, Pin.IN) for p in [10, 11, 12, 13]]
for s in sensors:
print(s.value())一行顶四行,这就是列表的威力。
函数:把一段代码打包成积木
第一册里用过"函数"积木(子程序),代码里就是 def:
python
def measure_distance():
"""测一次距离,返回厘米数"""
# 触发超声波……
return 18.5
d = measure_distance() # 调用函数
print(f"距离:{d} cm")带参数的函数更灵活:
python
def set_led(pin, on):
"""控制指定引脚的 LED"""
print(f"GP{pin} -> {'亮' if on else '灭'}")
set_led(2, True)函数的意义和第一册说的一样:避免重复编写,把复杂问题拆成小块。
import:借用别人写好的工具箱
python
import time # 导入 time 模块
time.sleep(1) # 使用里面的 sleep 功能
from machine import Pin # 只从 machine 里拿 Pin 这一个工具import time:整个工具箱搬进来,用的时候要写time.xxxfrom machine import Pin:只拿一件工具,直接用Pin
在 Pico 上最常用的三个模块:machine(硬件控制)、time(延时)、utime(精确计时)。
常见坑
- 函数定义了不调用,什么也不会发生
def行末的冒号和函数体的缩进,一个都不能少- 列表下标越界:
[1,2,3][3]报错,最大下标是长度减 1
想一想
函数和循环都能"避免重复",它们的区别是什么?什么时候用函数,什么时候用循环?
💡 查看答案
- 循环:同一段代码在原地连续重复执行(比如连测 5 次距离)
- 函数:把一段代码打包起个名字,在不同的地方随叫随到(比如
measure_distance()在程序各处都能调用)
一句话:连续重复用循环,到处复用用函数。
