【雕爷学编程】MicroPython手册之控制流语句 a if condition else b - 条件表达式

在这里插入图片描述

MicroPython是为了在嵌入式系统中运行Python 3编程语言而设计的轻量级版本解释器。与常规Python相比,MicroPython解释器体积小(仅100KB左右),通过编译成二进制Executable文件运行,执行效率较高。它使用了轻量级的垃圾回收机制并移除了大部分Python标准库,以适应资源限制的微控制器。

MicroPython主要特点包括:
1、语法和功能与标准Python兼容,易学易用。支持Python大多数核心语法。
2、对硬件直接访问和控制,像Arduino一样控制GPIO、I2C、SPI等。
3、强大的模块系统,提供文件系统、网络、图形界面等功能。
4、支持交叉编译生成高效的原生代码,速度比解释器快10-100倍。
5、代码量少,内存占用小,适合运行在MCU和内存小的开发板上。
6、开源许可,免费使用。Shell交互环境为开发测试提供便利。
7、内置I/O驱动支持大量微控制器平台,如ESP8266、ESP32、STM32、micro:bit、掌控板和PyBoard等。有活跃的社区。

MicroPython的应用场景包括:
1、为嵌入式产品快速构建原型和用户交互。
2、制作一些小型的可 programmable 硬件项目。
3、作为教育工具,帮助初学者学习Python和物联网编程。
4、构建智能设备固件,实现高级控制和云连接。
5、各种微控制器应用如物联网、嵌入式智能、机器人等。

使用MicroPython需要注意:
1、内存和Flash空间有限。
2、解释执行效率不如C语言。
3、部分库函数与标准版有差异。
4、针对平台优化语法,订正与标准Python的差异。
5、合理使用内存资源,避免频繁分配大内存块。
6、利用原生代码提升速度关键部位的性能。
7、适当使用抽象来封装底层硬件操作。

总体来说,MicroPython让Python进入了微控制器领域,是一项重要的创新,既降低了编程门槛,又提供了良好的硬件控制能力。非常适合各类物联网和智能硬件的开发。

在这里插入图片描述

二、MicroPython 控制流语句

MicroPython的控制流语句是指可以根据条件或循环来控制程序执行顺序的语句,如if、for、while、break、continue、pass等。控制流语句的主要特点有以下几点:
1、MicroPython的控制流语句与Python的控制流语句基本相同,只是在一些细节上有所区别,如MicroPython不支持match语句,而Python 3.10及以上版本支持。
2、MicroPython的控制流语句使用缩进来表示代码块,而不是使用花括号或其他符号,这使得代码更加简洁和清晰。
3、MicroPython的控制流语句可以嵌套使用,即在一个控制流语句中可以包含另一个控制流语句,以实现更复杂的逻辑。

控制流语句的应用场景有很多,例如:
1、用if语句可以根据条件来执行不同的代码块,如判断用户输入的密码是否正确,或者判断温度是否超过阈值等。
2、用for语句可以遍历一个序列或迭代器中的每个元素,并对每个元素进行相应的操作,如打印列表中的每个元素,或者计算字符串中的每个字符出现的次数等。
3、用while语句可以在条件为真时重复执行一个代码块,直到条件为假时停止,如实现一个猜数字游戏,或者计算一个数的阶乘等。
4、用break语句可以提前终止一个循环,如在查找一个元素时找到后就退出循环,或者在满足某个条件时就退出循环等。
5、用continue语句可以跳过当前循环的剩余部分,直接进入下一次循环,如在遍历一个列表时跳过某些不符合要求的元素,或者在计算一个数的因数时跳过偶数等。
6、用pass语句可以表示一个空的代码块,什么也不做,如在定义一个函数或类时暂时不写具体的实现,或者在一个分支中不需要执行任何操作等。

MicroPython的a if condition else b - 条件表达式是一种用于在一行代码中实现简单的条件判断和赋值的语法,可以使代码更简洁和优雅。MicroPython的a if condition else b - 条件表达式的主要特点有以下几点:

1、MicroPython的a if condition else b - 条件表达式与Python的a if condition else b - 条件表达式基本相同,只是在一些细节上有所区别,如MicroPython不支持在finally子句中使用条件表达式,而Python支持。
2、MicroPython的a if condition else b - 条件表达式由三个部分组成:条件condition、表达式a和表达式b。其中,condition是一个布尔值或者可以转换为布尔值的对象,a和b是任意类型的对象。

MicroPython的a if condition else b - 条件表达式的执行流程如下:
1、首先计算condition的值,如果为True,则计算并返回a的值,但忽略b的值;如果为False,则计算并返回b的值,但忽略a的值。
2、只有当condition为True时,才会计算a的值;只有当condition为False时,才会计算b的值。这样可以实现短路求值,即避免不必要的计算。
3、如果condition、a或b中有任何一个引发异常,则整个条件表达式也会引发异常,并终止执行。

a if condition else b - 条件表达式的应用场景有很多,例如:

1、用于实现一些需要根据条件选择不同值或对象的功能,如根据用户输入选择不同的提示信息、根据参数类型选择不同的函数等。
2、用于实现一些需要在一行代码中完成简单的逻辑判断和赋值的功能,如根据数字大小选择最大值或最小值、根据字符串长度选择截取或拼接等。
3、用于实现一些需要在列表推导式或字典推导式中进行条件过滤或转换的功能,如根据元素属性选择不同的列表元素、根据键值对关系选择不同的字典项等。

a if condition else b - 条件表达式的注意事项有以下几点:

1、MicroPython的a if condition else b - 条件表达式需要注意使用合适的条件和表达式,否则会导致逻辑错误或意外结果。如果条件或表达式过于复杂或难以理解,建议使用if…else语句代替。
2、MicroPython的a if condition else b - 条件表达式需要注意避免嵌套使用多个条件表达式,否则会导致代码可读性和可维护性降低。如果需要在多个条件之间进行选择,建议使用if…elif…else语句代替。
3、MicroPython的a if condition else b - 条件表达式需要注意遵守代码风格和规范,否则会导致代码格式混乱或不一致。建议在条件和表达式之间添加空格,并在可能引起歧义或优先级问题的地方添加括号。

以下是几个MicroPython的a if condition else b - 条件表达式实际运用程序案例:

案例一:实现一个简单的最大值函数,可以接收两个数字作为参数,并返回它们中较大的一个。

# 定义一个最大值函数,接受两个参数:数字a和数字b
def max(a, b):
    # 使用条件表达式判断a和b的大小,并返回较大者
    return a if a > b else b

# 调用最大值函数,传入数字1和2,并赋值给result
result = max(1, 2)
# 打印结果
print("两个数字中较大的一个为:{}".format(result))

案例二:实现一个简单的截取字符串功能,可以接收一个字符串作为参数,并返回它的前10个字符,如果字符串长度不足10,则返回原字符串。

# 定义一个截取字符串函数,接受一个参数:字符串s
def truncate(s):
    # 使用条件表达式判断s的长度,并返回前10个字符或原字符串
    return s[:10] if len(s) > 10 else s

# 调用截取字符串函数,传入字符串"Hello, world!",并赋值给result
result = truncate("Hello, world!")
# 打印结果
print("截取后的字符串为:{}".format(result))

案例三:实现一个简单的列表过滤功能,可以接收一个列表作为参数,并返回一个新的列表,其中只包含原列表中的正数。

# 定义一个列表过滤函数,接受一个参数:列表lst
def filter_list(lst):
    # 使用列表推导式和条件表达式遍历和过滤列表lst,并返回新的列表
    return [e if e > 0 else None for e in lst if e is not None]

# 定义一个列表(一维列表)
lst = [3, None, 5, -2, 0, 7]
# 调用列表过滤函数,传入列表lst,并赋值给result
result = filter_list(lst)
# 打印结果
print("过滤后的列表为:")
print(result)

案例四:计算绝对值:

def absolute_value(num):
    result = num if num >= 0 else -num
    return result

print(absolute_value(5))    # 输出:5
print(absolute_value(-3))   # 输出:3

在这个示例中,条件表达式用于计算给定数值的绝对值。如果num大于等于0,则表达式的结果为num本身;否则结果为-num。这种方式避免了使用if-else语句的繁琐,使代码更简洁。

案例五:判断奇偶性:

def is_even(num):
    return "偶数" if num % 2 == 0 else "奇数"

print(is_even(4))   # 输出:偶数
print(is_even(7))   # 输出:奇数

在这个示例中,条件表达式用于判断给定数值的奇偶性。如果num可以被2整除,则表达式的结果为字符串"偶数";否则结果为字符串"奇数"。这种方式简化了判断逻辑,并产生了相应的文本结果。

案例六:选择较大的数:

def max_number(a, b):
    return a if a > b else b

print(max_number(3, 7))   # 输出:7
print(max_number(5, 2))   # 输出:5

在这个示例中,条件表达式用于选择两个数中的较大值。如果a大于b,则表达式的结果为a;否则结果为b。这种方式简化了判断逻辑,并返回了两个数中的较大值。

案例七:根据条件设置变量值

x = 5
result = "正数" if x > 0 else "非正数"
print(result)  # 输出: "正数"

在这个案例中,根据变量 x 的值,使用条件表达式设置变量 result 的值。如果 x 大于 0,则 result 被设置为 “正数”,否则被设置为 “非正数”。通过条件表达式,可以在一行代码中实现简洁的条件赋值。

案例八:条件选择函数执行

def process_data(data):
    action = process_positive_data if data > 0 else process_negative_data
    action(data)

def process_positive_data(data):
    print("处理正数数据:", data)

def process_negative_data(data):
    print("处理负数数据:", data)

process_data(10)   # 输出: "处理正数数据: 10"
process_data(-5)   # 输出: "处理负数数据: -5"

在这个案例中,根据输入的数据值,使用条件表达式选择不同的函数进行处理。如果数据大于 0,则选择 process_positive_data 函数,否则选择 process_negative_data 函数。通过条件表达式,可以根据不同的条件选择不同的函数执行。

案例九:条件选择列表生成

numbers = [1, 2, 3, 4, 5]
squared_numbers = [x**2 if x % 2 == 0 else x for x in numbers]
print(squared_numbers)  # 输出: [1, 4, 3, 16, 5]

在这个案例中,根据列表中的元素值,使用条件表达式生成新的列表。如果元素值是偶数,则将其平方,否则保持原样。通过条件表达式,可以在列表生成过程中根据条件对元素进行选择和转换。

这些案例展示了 MicroPython 中使用条件表达式 a if condition else b 的实际应用。条件表达式提供了一种简洁的方式来在单行代码中根据条件进行选择和赋值。请注意,在使用条件表达式时,条件必须是可以返回布尔值的表达式,以便根据条件的真假选择 a 或 b。

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驴友花雕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值