【雕爷学编程】MicroPython手册之内置函数 min(iterable)

在这里插入图片描述

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是一种精简版的Python语言,它具有一些内置函数,这些函数可以在MicroPython环境中直接使用。以下是一些常用的MicroPython内置函数:

print(value):打印输出给定的值。
len(sequence):返回序列(字符串、列表、元组等)的长度。
input(prompt):从用户输入获取数据,并返回作为字符串。
str(object):将对象转换为字符串表示形式。
int(x):将参数转换为整数。
float(x):将参数转换为浮点数。
bool(x):将参数转换为布尔值。
range(start, stop, step):返回一个迭代器,生成从start到stop(不包括stop)的整数序列,步长为step(可选,默认为1)。
type(object):返回对象的类型。
dir([object]):返回对象的属性列表。如果没有提供参数,则返回当前作用域的所有名称。
abs(x):返回参数的绝对值。
min(iterable):返回可迭代对象中的最小值。
max(iterable):返回可迭代对象中的最大值。
sum(iterable):返回可迭代对象中所有元素的和。
round(number, ndigits):将浮点数四舍五入到指定的小数位数。

这些是MicroPython中一些常用的内置函数。它们可以执行各种常见的操作,例如打印输出、类型转换、数学运算和迭代等。请注意,MicroPython的内置函数集相对较小,与标准的Python语言有所不同。

在这里插入图片描述
MicroPython的内置函数min(iterable)是一个用于返回可迭代对象中最小元素的函数。它的主要特点是:

1、它可以接受任何支持比较运算的对象作为参数,例如数字、字符串、列表、元组等。
2、它可以接受一个可选的key参数,用于指定一个函数,该函数将作用于每个元素,并根据函数的返回值来比较元素的大小。
3、它可以接受一个可选的default参数,用于指定当可迭代对象为空时返回的默认值。

它的应用场景主要有:

1、在数据分析或统计中,用于找出一组数据中的最小值或最小值对应的数据项。
2、在排序或搜索算法中,用于找出一个序列中的最小元素或最小元素所在的位置。
3、在优化问题中,用于找出一个函数在给定区间内的最小值或最小值点。

它的需注意事项主要有:

1、当可迭代对象为空时,如果没有指定default参数,它会抛出ValueError异常。
2、当可迭代对象中有多个元素与最小值相等时,它会返回第一个遇到的最小值。
3、当可迭代对象中的元素不支持比较运算时,或者key参数指定的函数返回了不支持比较运算的值时,它会抛出TypeError异常。

以下是MicroPython的内置函数min(iterable)几个实际运用程序案例:

案例一:找出一组学生的成绩中的最低分,并输出该学生的姓名和成绩。假设学生的姓名和成绩存储在一个字典中,如下:

scores = {"Alice": 85, "Bob": 90, "Charlie": 75, "David": 80, "Eve": 95}

使用min(iterable)函数,可以这样编写代码:

# 定义一个函数,用于返回字典中每个键值对的值
def get_value(item):
    return item[1]

# 使用min(iterable)函数,指定key参数为get_value函数,找出字典中值最小的键值对
lowest_score = min(scores.items(), key=get_value)

# 输出结果
print("The lowest score is:", lowest_score[0], lowest_score[1])

输出结果为:

The lowest score is: Charlie 75

案例二:找出一个列表中的最小正数,并输出其位置。假设列表如下:

numbers = [-3, -5, 0, 2, 4, -1, 6]

使用min(iterable)函数,可以这样编写代码:

# 定义一个函数,用于判断一个数是否为正数
def is_positive(num):
    return num > 0

# 使用filter函数,过滤出列表中的正数,并转换为列表
positive_numbers = list(filter(is_positive, numbers))

# 使用min(iterable)函数,找出正数列表中的最小值
min_positive = min(positive_numbers)

# 使用index方法,找出最小正数在原列表中的位置
position = numbers.index(min_positive)

# 输出结果
print("The minimum positive number is:", min_positive)
print("Its position in the list is:", position)

输出结果为:

The minimum positive number is: 2
Its position in the list is: 3

案例三:找出一个二次函数在给定区间内的最小值点。假设二次函数为f(x) = x^2 - 4x + 5,并且区间为[-2, 4]。
使用min(iterable)函数,可以这样编写代码:

# 定义一个函数,用于计算二次函数的值
def f(x):
    return x**2 - 4*x + 5

# 使用range函数,生成给定区间内的整数序列,并转换为列表
x_values = list(range(-2, 5))

# 使用min(iterable)函数,指定key参数为f函数,找出序列中使得二次函数值最小的元素
min_x = min(x_values, key=f)

# 使用f函数,计算最小值点对应的函数值
min_y = f(min_x)

# 输出结果
print("The minimum value point of the function is:", (min_x, min_y))

输出结果为:

The minimum value point of the function is: (2, 1)

案例四:选择最早的日期:

dates = ["2023-01-15", "2023-02-10", "2023-01-05", "2023-03-01"]
earliest_date = min(dates)
print("最早的日期:", earliest_date)

在这个示例中,有一个日期列表dates,使用min(dates)函数找到列表中最早的日期。然后,将最早的日期打印输出。输出结果为:“2023-01-05”,表示最早的日期是2023年1月5日。

案例五:找到最小的温度值:

temperatures = [-5, 0, 10, -2, 3]
min_temperature = min(temperatures)
print("最小的温度值:", min_temperature)

在这个示例中,有一个温度列表temperatures,使用min(temperatures)函数找到列表中的最小温度值。然后,将最小温度值打印输出。输出结果为:-5,表示最小的温度值为-5。

案例六:查找字典中最小值对应的键:

scores = {"Alice": 85, "Bob": 92, "Charlie": 78, "David": 95}
min_score = min(scores, key=scores.get)
print("最小分数对应的学生:", min_score)

在这个示例中,有一个字典scores,代表学生的分数。使用min(scores, key=scores.get)函数找到分数最低的学生对应的键(即学生姓名)。然后,将最小分数对应的学生姓名打印输出。输出结果为:“Charlie”,表示最小分数对应的学生是Charlie。

案例七:获取可迭代对象中的最小值

numbers = [5, 2, 8, 1, 9]
min_num = min(numbers)
print("最小值:", min_num)

在这个案例中,使用 min() 函数获取可迭代对象 numbers 中的最小值,并将结果输出。在此示例中,最小值为 1。

案例八:找到字符串中的最小字符

text = "python"
min_char = min(text)
print("最小字符:", min_char)

在这个案例中,使用 min() 函数获取字符串 text 中的最小字符,并将结果输出。在此示例中,最小字符为 ‘h’。

案例九:根据自定义函数找到列表中的最小元素

def get_length(text):
    return len(text)

words = ["apple", "banana", "orange", "pear"]
min_word = min(words, key=get_length)
print("最小长度的单词:", min_word)

在这个案例中,使用 min() 函数根据自定义函数 get_length 找到列表 words 中长度最小的单词,并将结果输出。在此示例中,最小长度的单词为 “pear”。

这些案例展示了 MicroPython 中 min(iterable) 函数的实际运用。通过使用 min() 函数,可以获取可迭代对象中的最小值,找到字符串中的最小字符,或根据自定义函数找到列表中的最小元素。请注意,min() 函数适用于各种可迭代对象,如列表、字符串等,并且还可以使用自定义函数进行比较。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

驴友花雕

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

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

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

打赏作者

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

抵扣说明:

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

余额充值