You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现列表奇偶数字筛选功能代码报错排查

问题说明

需开发Python程序实现以下功能:接收用户输入的数字列表,分别筛选出列表中的偶数与奇数,最终以列表格式打印输出。现有代码存在运行错误,无法达成预期效果。

原有错误代码
def find_evens_and_odds()
    numbers=list(input("give me your list:"))
    
    evens=list()
    
    odds=list()
        
             
    for i in numbers:
        if i % 2 ==0:
            evens.append(i)
                
        else:
            odds.append(i)  
            
    print(numbers)
    
    print(evens,odds)     
错误点排查
  • 语法错误:函数定义行def find_evens_and_odds()末尾缺少Python语法要求的冒号:,程序启动时会直接抛出语法异常,无法运行。
  • 输入处理逻辑错误:input()返回值为字符串类型,直接用list()转换会逐字符拆分输入内容,得到的元素是单个字符串(例如输入123会得到['1','2','3'],输入带空格的1 2 3会得到['1',' ','2',' ','3']),既会混入分隔符类的无效内容,元素也不是可参与数值运算的整数类型。
  • 类型匹配错误:遍历得到的列表元素为字符串类型,直接执行i % 2会触发类型异常,字符串无法和整数做取模运算。
修复后可运行代码

默认要求用户输入时用空格分隔多个数字,代码如下:

def find_evens_and_odds():
    numbers = [int(num) for num in input("give me your list(separate numbers with space):").split()]
    evens = list()
    odds = list()
    for i in numbers:
        if i % 2 == 0:
            evens.append(i)
        else:
            odds.append(i)
    print("原始列表:", numbers)
    print("偶数列表:", evens)
    print("奇数列表:", odds)

# 调用函数执行逻辑
find_evens_and_odds()

运行示例:
控制台输入:1 2 3 4 5 6 7 8
控制台输出:
原始列表: [1, 2, 3, 4, 5, 6, 7, 8]
偶数列表: [2, 4, 6, 8]
奇数列表: [1, 3, 5, 7]

如果需要适配逗号分隔的输入格式,仅需把split()替换为split(',')即可。


内容的提问来源于stack exchange,提问作者Parsa soleymani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 04:31:04