python 如何使用for循环对奇数和偶数进行排序?

iq0todco  于 2023-01-16  发布在  Python
关注(0)|答案(2)|浏览(422)

我试图用一个for循环来获取一个数字列表,并根据它们是偶数还是奇数来排序它们。我似乎无法让它工作。我已经让它运行并给予所有的数字,但这不是我想要的。请帮助我完成这段代码,这样我就可以让它告诉我一个数字是偶数还是奇数,如果是偶数就忽略它。

def is_odd(num):
    if(num % 2) == 0:
        return(True)
            
    else: return(False)
some_numbers = [91, 88, 38, 103, 199372, 3, 4945, 20098]
for num in list(some_numbers):
    if num == is_odd:
        continue
        print(num)

我知道在此之后我需要一些东西,但目前当我运行代码时,没有发生任何令人担忧的事情。

ajsxfq5m

ajsxfq5m1#

您正在尝试检查num是否等于函数is_odd,该函数将始终返回False,因为它们不相等。
下面是您的代码的修改版本,应该工作:

def is_odd(num):
    if(num % 2) == 0:
        return False
    else:
        return True

some_numbers = [91, 88, 38, 103, 199372, 3, 4945, 20098]
for num in some_numbers:
    if not is_odd(num):
        continue
    print(num)
vecaoik1

vecaoik12#

希望这有帮助!

some_numbers = [91, 88, 38, 103, 199372, 3, 4945, 20098]
for num in list(some_numbers):
    if num % 2 != 0:
        print(num)

或者如果你想实现你的函数

def is_odd(num):
    if num % 2 == 0:
        return False 
    else: 
        return True
        
some_numbers = [91, 88, 38, 103, 199372, 3, 4945, 20098]
for num in list(some_numbers):
    if is_odd(num):
        print(num)

您可以通过返回与其测试相反的结果来简化函数:

def is_odd(num):
  return !(num % 2 == 0)

相关问题