MicroPython的utime.ticks_diff,for i in range,及运算顺序

例如,下面的代码展示了如何使用 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)中运算符的优先级,从高到低:

  1. 括号 ():括号内的表达式首先被评估。
  2. 指数运算**(幂运算)
  3. 正负号、取反+x-x~x
  4. 乘法、除法、整除、取模*///%
  5. 加法、减法+-
  6. 位移<<>>
  7. 位与&
  8. 位异或^
  9. 位或|
  10. 比较<<=>>===!=isis notinnot in
  11. 身份isis not
  12. 成员innot in
  13. 逻辑与and
  14. 逻辑或or

如果表达式中有多个运算符,那么根据这个优先级列表,操作将按照从高到低的顺序执行。如果优先级相同,那么操作将从左到右执行。

例如:

x = 5 + 3 * 2 # 结果是 11,不是 16,因为乘法优先级高于加法
x = (5 + 3) * 2 # 结果是 16,因为括号改变了运算顺序

 

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值