python - 函数可以在 for 循环语句中返回两次吗
问题描述
我有以下函数来检查正则表达式输入是否合法:
重新进口
def isvalid_regex():
for _ in range(2):
try:
re.compile(input())
return True
except re.error:
return False
这里的问题是我没有得到我所期望的双重输入range(2)
。该函数返回 me False
orTrue
并退出。我猜一个函数不能重复返回语句 afor loop in range(x)
存在的次数,对吗?我的目标是有一个双输入和一个双 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
笔记:
您可能会注意到执行顺序不同。你可以选择适合你的情况。
推荐阅读
- ubuntu - 如何从 PDF 文件中删除流/对象?
- python - AttributeError:“系列”对象没有属性“合并”
- python - 运行 docker 时无法将“app.server”解析为属性名称或函数调用
- html - 我无法使用我使用 HTML 和 CSS 制作的 github 页面发布我的网站
- python - 我无法使用“枕头”的“裁剪”来剪切图像
- firebase-cloud-messaging - 同一域上的多个 TWA 上的 FCM 推送通知
- google-cloud-dataflow - 如何限制使用 FileIO 写入的每个文件的行数
- database - cloud spanner IAM权限,限制对数据库的访问
- javascript - 在 React 中通过 onClick 更改元素的 className 会触发重新渲染,但条件 className 构造不会?
- flutter - 如何将 suffixIcon 对齐到多行 TextField 的顶部?