如何用自定义Python函数筛选用户输入列表中的偶数
解决从用户输入中提取偶数的问题
你的代码存在几个关键问题,导致无法正确实现提取偶数的功能:
- 直接用
list(input(...))处理输入会把字符串拆成单个字符,比如输入2 4 5会变成['2',' ','4',' ','5'],包含空格和字符串类型的数字,后续做取模运算会报错。 - 没有将输入的字符串转换为整数类型,直接对字符串执行
%2操作不符合Python语法。 - 调用
filter_even()后没有输出结果,无法看到筛选后的偶数。
修正后的代码
def filter_even(numbers): result_list = [] for number in numbers: if number % 2 == 0: result_list.append(number) return result_list # 按空格分割输入字符串,转换为整数列表 input_str = input('输入用空格分隔的数字:') number_list = [int(num) for num in input_str.split()] # 调用函数并打印结果 print(filter_even(number_list))
代码优化(可选)
可以用列表推导式简化函数逻辑,让代码更简洁:
def filter_even(numbers): return [num for num in numbers if num % 2 == 0] input_str = input('输入用空格分隔的数字:') number_list = [int(num) for num in input_str.split()] print(filter_even(number_list))
内容的提问来源于stack exchange,提问作者greeshma y
相关产品推荐
相关产品推荐

