查找最大的偶数

Python 挑战练习-进阶挑战56

编写一个程序来查找列表中最大的偶数。如果列表中没有偶数,则返回-1

  • 定义一个名为find_largest_even()的函数,该函数接受一个列表作为参数。

  • 在函数内部,遍历列表并找到最大的偶数。

  • 如果没有找到偶数,则返回-1

def find_largest_even(lst):
    # 此处编写你的代码
    large_even=-1
    for num in lst: 
        if num%2==0 and num>large_even:
            large_even=num
    return large_even

# 获取输入转为整数列表 
input_list = list(map(int, input().split()))

# 调用函数 
print(find_largest_even(input_list))

解释:

  • 首先初始化变量 largest_even 为 -1,这个变量用于记录找到的最大偶数,初始化为 -1 是因为按照题目要求,如果列表中没有偶数,就返回 -1

  • 通过 for num in lst: 循环遍历输入的列表 lst 中的每一个数字。在循环中,使用 if num % 2 == 0 and num > largest_even: 判断当前数字是否为偶数(通过 num % 2 == 0 判断),并且是否比当前记录的最大偶数还要大(通过 num > largest_even 判断),如果这两个条件都满足,就说明找到了一个更大的偶数,将 largest_even 的值更新为当前数字 num

  • 当整个列表遍历结束后,largest_even 变量中存储的值就是列表中最大的偶数,如果列表中没有偶数,它依然保持初始值 -1,最后通过 return largest_even 返回这个值,符合题目要求的功能。

方法二:使用内置函数筛选后取最大值(简洁版)

def find_largest_even(lst):
    evens = [num for num in lst if num % 2 == 0]
    if evens:
        return max(evens)
    return -1

 解释:

  • 首先使用列表推导式 [num for num in lst if num % 2 == 0] 从输入的列表 lst 中筛选出所有的偶数,将这些偶数组成一个新的列表 evens

  • 接着通过 if evens: 判断 evens 列表是否为空,如果不为空,说明找到了偶数,此时使用 max(evens) 函数获取 evens 列表中的最大值,也就是列表 lst 中最大的偶数,然后返回这个最大值;如果 evens 列表为空,说明没有找到偶数,按照题目要求返回 -1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值