python-3.x - 返回终止 for 循环
问题描述
我正在尝试定义一个以下函数,该函数应该返回两个给定数字之间的所有奇数,但是 return 终止了 for 循环,因此只返回第一个数字。我该如何克服呢?
def oddNumbers(l,r):
L=[]
for i in range (l,r+1):
L.append(i)
for i in range (len(L)):
if L[i] % 2 !=0:
return(L[i])
else:
continue
解决方案
如果generators
对你来说太难了,你可以试试这个。
代码:
def odd_numbers(l,r):
ans = []
for i in range (l,r+1):
if i % 2 == 1:
ans.append(i)
return ans
print(odd_numbers(1,10))
结果:
[1, 3, 5, 7, 9]
通过使用更pythonic来做到这一点list comprehension
代码:
def odd_numbers_list_comprehension(l,r):
return [i for i in range (l,r+1) if i % 2 == 1]
print(odd_numbers_list_comprehension(1,10))
结果:
[1, 3, 5, 7, 9]
推荐阅读
- python-3.x - AWS 弹性 beantalk 的上传文件夹路径是什么?
- c# - 为 InvokeCommand 中的命令参数编写单元测试
- javascript - 动态分页列表
- ubuntu - cloud-init 无法在附加了 iso 的 ubuntu 中工作
- docusignapi - DocuSign 通过 API 创建信封,但未发送电子邮件
- redirect - 如果未使用 nextAuth 登录,如何在 NextJS 中重定向
- python - 我正在尝试使用 python 将英语数据集转换为英语
- java - 使用TestNG可以使用预条件测试scnarios时如何并行执行黄瓜功能文件
- php - 通过 Red Bean PHP 通过 SSL 连接到 PGSQL
- python-3.8 - 如何获取熊猫中最大值和最小值出现的年份