首页 > 解决方案 > 在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

标签: pythonpython-3.xalgorithm

解决方案


没有必要通过范围。看一下第一个数字:如果它是奇数,则以 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))

推荐阅读