python - 函数可以在 for 循环语句中返回两次吗

标签 python

我有以下函数来检查正则表达式输入是否合法:

导入报告

def isvalid_regex():
    for _ in range(2):
        try:
            re.compile(input())
            return True
        except re.error:
            return False

这里的问题是我没有像 range(2) 所期望的那样得到双重输入。该函数返回 FalseTrue 并退出。我猜一个函数不能重复返回语句的次数 for loop in range(x) exists right?我的目标是获得双重输入和双重 True 或 False return。例如作为输出:

True
False

最佳答案

return 语句结束函数。
您有两个选择:

1。发电机

您可以在以下位置了解生成器:https://docs.python.org/3/howto/functional.html?#generators

def isvalid_regex():
    for _ in range(2):
        try:
            re.compile(input())
            yield True
        except re.error:
            yield False


for x in isvalid_regex():
    print(x)

输入输出:

t
True
\\\
False

2。构建列表并返回一次

def isvalid_regex():
    results = []
    for _ in range(2):
        try:
            re.compile(input())
            results.append(True)
        except re.error:
            results.append(False)
    return results


for x in isvalid_regex():
    print(x)

输入输出:

t
\\\
True
False

备注:

您可能会注意到执行顺序不同。您可以选择适合您的情况。

关于python - 函数可以在 for 循环语句中返回两次吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61057691/

相关文章:

python - 检测相似图像

python - Pandas 仅在条件为真时才替换数据框中列的值

python - 使用 os.walk 时未使用的对象

python - 属性错误 : 'FactorAnalyzer' object has no attribute 'analyze'

python - 处理带有空格的 css 类名

python - Anaconda pip 与 native Ubuntu pip

python - 自动导入给定文件夹中的所有 Python 文件?

python - 将 JSON 转换为 python 数据帧

python - 如何从 python 服务器端代码插入 Google Glass Mirror 凭据?

python - 模拟 AWS lambda 和 boto3