return True 在 Python 中停止循环?

2023-09-02Python开发问题
8

本文介绍了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 中停止循环?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

在xarray中按单个维度的多个坐标分组
groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)...
2024-08-22 Python开发问题
15

Pandas中的GROUP BY AND SUM不丢失列
Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)...
2024-08-22 Python开发问题
17

GROUP BY+新列+基于条件的前一行抓取值
Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)...
2024-08-22 Python开发问题
18

PANDA中的Groupby算法和插值算法
Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)...
2024-08-22 Python开发问题
11

PANAS-基于列对行进行分组,并将NaN替换为非空值
Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)...
2024-08-22 Python开发问题
10

按10分钟间隔对 pandas 数据帧进行分组
Grouping pandas DataFrame by 10 minute intervals(按10分钟间隔对 pandas 数据帧进行分组)...
2024-08-22 Python开发问题
11