例如,下面的代码展示了如何使用 utime.ticks_diff
来计算一段代码的执行时间:
import utime | |
start = utime.ticks_ms() # 记录开始时间戳 | |
# 执行一些代码... | |
end = utime.ticks_ms() # 记录结束时间戳 | |
duration = utime.ticks_diff(start, end) # 计算执行时间 | |
print(duration) # 输出执行时间,单位为毫秒 |
在这个例子中,utime.ticks_ms()
用于获取当前时间的毫秒级时间戳。通过比较开始和结束时间戳,并使用 utime.ticks_diff
来计算它们之间的差值,我们可以得到代码的执行时间。
需要注意的是,由于滴答数的回绕特性,utime.ticks_diff
只能用于计算相对较短的时间差。如果两个时间戳之间的差值超过了滴答数的范围,那么计算出的结果可能会出现错误。因此,在使用 utime.ticks_diff
时,需要确保计算的时间差不会超出其适用范围\
-------------------------------------------------------------------
下面是utime
: 相关代码
import utime
......................
last_signal_time1 = utime.ticks_ms()
while True: #等待XH1.value()==0或者等待时间超过1500ms,就退出while True循环
if XH1.value() and utime.ticks_ms() - last_signal_time < 1500:
# 执行您想要在条件不满足时执行的代码
pass
else:
# 执行您想要在条件满足时执行的代码
break # 这将退出循环
.....................
-----------------------------------------------------------------------------
for i in range
循环会遍历 range
函数生成的数字序列,每次循环将序列中的一个数字赋值给变量 i
,然后执行循环体中的代码。
以下是一些使用 for i in range
的例子:
# 示例 1: 打印从 0 到 4 的整数 | |
for i in range(5): | |
print(i) | |
# 示例 2: 从 1 开始打印到 5 的整数 | |
for i in range(1, 6): | |
print(i) | |
# 示例 3: 从 0 开始,以 2 为步长,打印到 8 的整数 | |
for i in range(0, 9, 2): | |
print(i) | |
# 示例 4: 使用 range 在列表推导式中 | |
squares = [i**2 for i in range(10)] | |
print(squares) # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] |
在这些例子中,for i in range
循环会依次将序列中的每个数字赋值给 i
,并执行循环体中的语句。第一个例子中,i
的值将依次是 0, 1, 2, 3, 4。第二个例子中,i
的值将依次是 1, 2, 3, 4, 5。第三个例子中,i
的值将依次是 0, 2, 4, 6, 8。
------------------------------------------------------------------
在 Python(包括 MicroPython)中,运算符的优先级决定了表达式中操作的执行顺序。即使没有使用括号,你也需要了解这些优先级,以确保代码按照你期望的方式执行。
以下是 Python(以及 MicroPython)中运算符的优先级,从高到低:
- 括号
()
:括号内的表达式首先被评估。 - 指数运算:
**
(幂运算) - 正负号、取反:
+x
,-x
,~x
- 乘法、除法、整除、取模:
*
,/
,//
,%
- 加法、减法:
+
,-
- 位移:
<<
,>>
- 位与:
&
- 位异或:
^
- 位或:
|
- 比较:
<
,<=
,>
,>=
,==
,!=
,is
,is not
,in
,not in
- 身份:
is
,is not
- 成员:
in
,not in
- 逻辑与:
and
- 逻辑或:
or
如果表达式中有多个运算符,那么根据这个优先级列表,操作将按照从高到低的顺序执行。如果优先级相同,那么操作将从左到右执行。
例如:
x = 5 + 3 * 2 # 结果是 11,不是 16,因为乘法优先级高于加法 |
x = (5 + 3) * 2 # 结果是 16,因为括号改变了运算顺序 |