首页 > 解决方案 > TypeError:字符串格式化期间并非所有参数都转换(数字计数)

问题描述

编写一个 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 行,在 if i % 2 == 0 中:TypeError:字符串格式化期间并非所有参数都转换了 </p>

标签: pythonstringcountformattingarguments

解决方案


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

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)


推荐阅读