Python all()实战 生产线质检不合格立刻停工
all() 语法介绍
语法: all(可迭代对象)
作用:一假即假,只要整个列表找到任意一个不满足条件(返回False),后面剩下的数据就不再执行判断,直接停止。
普通for循环默认遍历完整张列表,all拥有短路,可以提前结束流程。
只有全部结果都是True的时候,才会完整遍历,最后返回True。
适用场景:整体校验,全部合格才算通过,发现一处不合格直接终止
def check(s):
name=s[0]
print(f"检测:正在检查【{name}】")
if s[1]=="合格":
print(f"【{name}】:合格")
return True
else:
print(f"【{name}】:不合格")
return False
work=[
["工序1","合格"],
["工序2","合格"],
["工序3","不合格"],
["工序4","合格"],
["工序5","合格"]
]
res=all(check(x) for x in work)
if res:
print("✅ 全部工序检测通过,继续生产")
else:
print("❌ 检测到不合格,生产线立刻停工")
运行结果
检测:正在检查【工序1】
【工序1】:合格
检测:正在检查【工序2】
【工序2】:合格
检测:正在检查【工序3】
【工序3】:不合格
❌ 检测到不合格,生产线立刻停工
逐条讲解
1. def check(s): 自定义检测函数,判断单道工序是否合格
2. name=s[0] 获取工序名称,打印当前检测环节
3. if 判断工序状态,合格返回True,不合格返回False
4. work 列表保存整套生产所有工序
5. all(check(x) for x in work)
重点:工序3返回False,工序4、工序5不再执行检测打印。
普通for循环会跑完全部5道工序,all找到不满足条件的就直接停止。
6. if 判断结果,全部合格继续生产,发现不合格马上停工
all() 完整执行过程 & 原理总结
执行过程:
1. all依次取出每一道工序数据,传给check函数运行;
2. 工序1执行,返回True → all继续取下一条数据;
3. 工序2执行,返回True → all继续取下一条数据;
4. 工序3执行,返回False → 触发短路机制,不再读取工序4、工序5,函数不再执行;
5. all整体结果赋值为False,终止迭代。
原理总结:
all内部自带判断机制,只要收到False,立刻终止迭代,不再处理剩下元素。
只有所有元素全部返回True,all才会遍历完整列表,最终返回True。
对比普通for循环:for不会自动中途结束,必须手动写break,all原生自带短路停止功能。
汇总对比
1. any():找到True就停止,不用遍历全部列表;适合搜寻物品
2. all():找到False就停止,不用遍历全部列表;适合质检验收
3. 普通for循环:默认从头到尾跑完整个列表,不会自动中途停止