为什么即使数字是负数,我的函数也不能返回最大值

2024-03-28 18:02:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要创建一个返回列表中最大偶数的函数。我创造了这个,但它不适用于负数,我不知道为什么。你知道吗

def largest_even(list_int):
large = False
print(list_int)
for i in list_int:
    if i % 2 == 0:
        i = large
for i in list_int:
    if i % 2 == 0:
        if i > large:
            large = i
return large

Tags: 函数infalse列表forifdeflist
3条回答

如果您正在寻找最大的偶数,那么dcg的答案是正确的

如果你问为什么你的代码不起作用:

  • 首先,看起来您有嵌套的for,所以不要在嵌套循环中重用同一个变量i,除非您有充分的理由

  • 第二,这个i = large应该是large = i

重写:

def largest_even(list_int):
    large = False
    for i in list_int:
        if i % 2 == 0:
            large = i
        for j in list_int:
            if j % 2 == 0:
                if j > large:
                    large = j
    return large

你为什么用假来初始化大的?我想你没必要这么做。 第二个误差在第六行(i=large)。它应该是(large=i),因为您希望将第一个出现的偶数存储到变量,而不是列表中该位置的变量。你知道吗

根据以上评论,您可以通过以下方法解决问题:

max(x for x in list_int if x % 2 == 0)

您的代码必须按以下方式修改,这样才能获得传递列表中最大的偶数:

1-您需要修复代码中的缩进(我猜这是由于复制和粘贴)

2-您可以找到最大的:

large = None 
for x in list_int:
     if x % 2 == 0:
         if large is None: 
             large = x
         if x > large:
             large = x

相关问题 更多 >