return True stop the loop in Python?(return True 在 Python 中停止循环?)
问题描述
我仍然是初学者,但不知道为什么for 循环"中的return True"会在第一次通过后停止循环.如果我使用return"以外的其他东西,一切都很好.
I am still a beginner but does not know why the "return True" in a "for loop" stop the loop after the first pass. If I use something else than "return", everything is fine.
def roc_valid(self,cote_x,cote_y):
from graph_chess import board
p = board()
side=(side_x,side_y)
if side == (0,0):
for (x,y) in (0,1),(0,2),(0,3):
print(King.ok_to_move(self,x,y))
if p.getPiece(x,y)=="" and king.ok_to_move(self,x,y):
return True
推荐答案
您可以使用 yield
语句.return
语句会停止函数并立即返回值,而 yield
语句将返回值并从离开的地方继续.
You can use the yield
statement. A return
statement stops the function and immediately and returns the value while yield
statement will return the value and but continues where it left.
if side == (0,0):
for (x,y) in (0,1),(0,2),(0,3):
print(King.ok_to_move(self,x,y))
if p.getPiece(x,y)=="" and king.ok_to_move(self,x,y):
yield True
现在使用:list(roc_valid(self,cote_x,cote_y))
获取所有返回值的列表,或者只是next(roc_valid(self,cote_x,cote_y))
code> 只获取第一个值.
Now use: list(roc_valid(self,cote_x,cote_y))
to get a list of all returned values or just next(roc_valid(self,cote_x,cote_y))
to get only the first value.
演示:
def func():
for i in xrange(5):
if i % 2:
yield True
...
>>> list(func()) #all returned values
[True, True]
>>> next(func()) #Just the first returned value
True
相关:Python yield
关键字解释
Related: The Python yield
keyword explained
这篇关于return True 在 Python 中停止循环?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:return True 在 Python 中停止循环?
基础教程推荐
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 筛选NumPy数组 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01