Python 如何从";至于;环

Python 如何从";至于;环,python,python-3.x,string,loops,for-loop,Python,Python 3.x,String,Loops,For Loop,我试图使一个循环遍历提供的字符串,如果找到未识别的字符,则返回False,如果所有字符都已识别,则返回True。我确实意识到for循环不允许在循环中返回值,但考虑到这是更大代码的一部分,我需要返回bool值,而不是打印值 有没有办法在没有for循环的情况下解决这个问题?我的代码如下 (我也是在一个介绍课上,在那里我们还没有学习很多内置函数,所以我可能还不应该使用……任何简单的方法来解决这个问题?) 可以使用yield从循环返回多个值: def createGenerator(): myl

我试图使一个循环遍历提供的字符串,如果找到未识别的字符,则返回
False
,如果所有字符都已识别,则返回
True
。我确实意识到
for
循环不允许在循环中返回值,但考虑到这是更大代码的一部分,我需要返回
bool
值,而不是打印值

有没有办法在没有
for
循环的情况下解决这个问题?我的代码如下

(我也是在一个介绍课上,在那里我们还没有学习很多内置函数,所以我可能还不应该使用……任何简单的方法来解决这个问题?)


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

def createGenerator():
    mylist = range(3)
    for i in mylist:
        yield i*i

mygenerator = createGenerator() # create a generator
for i in mygenerator:
     print(i)


#output:
0
1
4

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

如果您提供的字符串是
s
,那么您可以检查您的状况并返回:

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

如果在for循环中发现至少一个无法识别的字符,则需要返回True吗?如果使用
return
,则不需要
break
,因为
break
将永远不会执行。用户
之后为
-循环返回True,基本上不在内部。我希望,如果它找到至少一个未被识别的字符,它应该返回False并停止查找。如果所有内容都被识别,我希望它返回True。您可以在
for
-循环中使用
return
-那么问题出在哪里?我已经意识到return需要在for循环之外。。。下面就是。在这种情况下,我不知道如何解决的问题是,无论它发现什么,它总是返回False。有什么办法可以解决这个问题吗?这是因为如果它发现一个不正确的字符,因此我将其从循环中打断,它将返回false,但是如果它遍历所有字符并被识别,它仍然会到达return false语句并返回false。添加问题:我意识到要检查“\”我必须添加一个额外的引号,以便将其判断为字符串,但这也意味着代码只将\“识别为有效字符。有没有办法避免这种情况?将“\”更改为“(单引号、双引号、单引号)。这应该可以解决您的问题。这也有效。谢谢:)。添加问题:我意识到要检查”\“我不得不添加一个额外的引号,以便将其判断为字符串,但这也意味着代码只将\”识别为有效字符。有没有办法避免这种情况?@sarahsss:只需使用
“\\”
,这是在字符串文本中表示单个反斜杠字符的标准方法。
def find_characters(s):
    for c in s:
        if c not in chars:
            return False
     return True
def find_characters(s):
    return all(c in chars for c in s)