python - 在python中找到给定范围内的奇数
问题描述
下面是打印给定整数范围内的奇数的代码。当我使用返回函数时,它正在检查3
并返回num
,所以输出即将到来3
,但这不是我正在寻找的所需输出。所需的输出是3,5
在另一种情况下,当我使用打印功能而不是返回程序检查 3、4、5 并返回“3 & 5”作为输出时。
可以帮助我获得正确的输出
def oddNumbers(l, r):
# Write your code here
# iterating each number in list
for num in range(l, r + 1):
# checking condition
if num % 2 != 0:
return num
解决方案
没有必要通过范围。看一下第一个数字:如果它是奇数,则以 2 的步长从该数字开始构建一个新范围。如果是偶数,则从下一个数字开始。
def oddNumbers(l, r):
if l % 2 == 1:
return list(range(l, r + 1, 2))
else:
return list(range(l + 1, r + 1, 2))
或者,以更 Pythonic 的方式:
def oddNumbers(l, r):
return list(range(l if l % 2 else l + 1, r + 1, 2))
推荐阅读
- django-rest-framework - djnago rest api 数据未在 Angular localhost 页面(客户端)中加载
- sass - Bootstrap 4 - 理解 $grid-breakpoints 和 $container-max-widths
- php - 执行 cron 时,cron 作业不会读取和写入日志文件
- python-3.x - 填充边缘检测到的文本轮廓
- python - skimage.io.imread 与 cv2.imread
- php - 将用户重定向到页面后如何在输入和tinymce textarea中回显会话变量
- c# - 在 Azure 上存储和使用现有的数据保护密钥
- android - Android 通知在一定时间后停止更新
- sqlite - UseSqlite时如何在.net core 3.1中设置FK强制等于false
- c# - 无法在 UWP 打印预览页面中设置宽度和高度属性