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

Python .count()计数失效问题:统计列表中的偶数、奇数与零

问题分析

你的代码里第5行zero = numbers.count(0)不生效的核心原因是:input().split()返回的是字符串列表——比如输入0 2 3,numbers实际是["0", "2", "3"],而你用count(0)查找的是整数0,自然匹配不到任何元素,导致zero始终为0,后续第15行even = even - zero也等于没执行。

修复方案

有两种简洁的修复方式:

方式一:直接统计字符串"0"的数量

修改第5行代码,把查找的目标改成字符串类型的"0":

zero = numbers.count("0")

这样就能正确统计输入中的零的数量,后续even = even - zero也能正常减去零的个数,得到真正的非零偶数统计结果。

方式二:先将所有元素转为整数

先把整个输入列表转换成整数类型,后续的统计和判断都基于整数,逻辑更清晰:

numbers = list(map(int, input("Numbers separated by space:").split()))

print("Numbers:" + str(numbers))

zero = numbers.count(0)
even = 0
odd = 0

for i in numbers:
    if i % 2 == 0:
        even += 1
    else:
        odd += 1

even = even - zero

print("Even:" + str(even))
print("Odd:" + str(odd))
print("Zero:" + str(zero))

这种方式从根源上避免了字符串与整数混淆的问题,后续的取余判断和统计操作都更直观。

测试示例

假设输入0 1 2 3 0 4,两种修复方式都会输出:

Numbers:[0, 1, 2, 3, 0, 4]
Even:2
Odd:2
Zero:2

这里的Even统计的是2、4两个非零偶数,Odd是1、3两个奇数,Zero是两个0,结果符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:35:21