gpt4 book ai didi

python - 有什么方法可以替换 break 以提前退出 for 循环吗?

转载 作者:太空宇宙 更新时间:2023-11-04 09:22:37 24 4
gpt4 key购买 nike

for oPosition in dots:
if ((oPosition.cx - 8) < mx < (oPosition.cx + 8)) and ((oPosition.cy - 8) < my < (oPosition.cy + 8)):
draging = True
break

这是我想在我的程序中使用的代码,但是老师告诉使用我们不能使用breakcontinue。 Python 中有什么方法可以替换它并停止循环吗?

最佳答案

一般来说,消除break + boolean 的方法是将代码转储到函数中并返回结果。但是 Python 为此提供了一个内置函数,any ,它接受一个可迭代对象并返回 True 如果可迭代对象中的至少一项计算结果为真值:

from collections import namedtuple

Dot = namedtuple("Dot", "cx cy")
dots = [Dot(1, 2)]
mx = 3
my = 3

dragging = any(((x.cx - 8) < mx < (x.cx + 8)) and ((x.cy - 8) < my < (x.cy + 8)) for x in dots)

print(dragging)

any 的定义基本上是:

def any(iterable):
for element in iterable:
if element:
return True
return False

关于python - 有什么方法可以替换 break 以提前退出 for 循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59337716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com