我有以下函数来检查正则表达式输入是否合法:
导入报告
def isvalid_regex():
for _ in range(2):
try:
re.compile(input())
return True
except re.error:
return False
这里的问题是我没有像 range(2)
所期望的那样得到双重输入。该函数返回 False
或 True
并退出。我猜一个函数不能重复返回语句的次数 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/