如何从“ for”循环返回值?

时间:2019-10-15 17:27:53

标签: python python-3.x string loops for-loop

我正在尝试使循环遍历提供的字符串,如果找到了无法识别的字符,则返回False,如果识别出所有字符,则返回True。我确实意识到for循环不允许在其中返回值,但是考虑到这是更大代码的一部分,我需要返回一个bool值,而不是print值。

有没有一种方法可以解决这个问题,而无需使用for循环?我的代码在下面。

(我也在入门课程中,其中许多内置函数尚未学习,因此我可能不应该使用...解决此问题的任何简单方法?)

    chars = ["o", ".", "\"", "n"]


    def find_characters(s):
        for c in s:
            if c not in chars:
                break

    # IDEALLY WANT
    def find_characters(s):
        for c in s:
            if c not in chars:
                return False
                break
            else:
                return True

3 个答案:

答案 0 :(得分:5)

def find_characters(s):
    for c in s:
        if c not in chars:
            return False
     return True

根据评论,我认为这是您想要的。

答案 1 :(得分:4)

如果您提供的字符串为s,则可以检查条件并返回:

def find_characters(s):
    return all(c in chars for c in s)

答案 2 :(得分:0)

您可以使用yield从循环中返回多个值:

(Val n) <*> mx = Val n