TypeError: not all arguments converted during string formatting(numbers counting)

TypeError: not all arguments converted during string formatting(numbers counting)

编写一个Python程序来计算输入的偶数和奇数的个数。

count_even = 0
count_odd = 0
numbers = input()
for x in numbers:
  for i in x:
    if i % 2 == 0 :
      count_even += 1
    else:
      count_odd += 1
print(count_even)
print(count_odd)

错误:回溯(最后一次调用): 文件“main.py”,第 6 行,位于 如果我 % 2 == 0 : TypeError:并非所有参数都在字符串格式化期间转换 

我发现代码有几个问题。第一件事是,我没有看到 x 和 i 被创建或声明。第二件事是,当你做 numbers = input() 时,numbers 的变量类型是一个字符串。您可能想将其更改为 numbers = int(input())

首先,我不确定您为什么要对一个列表进行两次迭代。其次,如果您需要一个由空格分隔的列表,则需要将其拆分为元素,然后需要将每个项目转换为一个整数,然后您可以对其进行迭代。

count_even = 0
count_odd = 0
numbers = input()
print(numbers)
for x in numbers.split():
    if int(x) % 2 == 0:
        count_even += 1
    else:
        count_odd += 1
print(count_even)
print(count_odd)