如何修复Python报错TypeError: 'int' object is not iterable?
错误成因
- 触发
TypeError: 'int' object is not iterable报错的核心原因是你试图将整数类型的变量转为列表,整数属于单个不可迭代对象,无法被list()方法拆分处理。大概率是你实际运行的代码和贴出的版本存在差异:如果你将第一行写为N = int(input("Enter long number: ")),后续执行list(N)操作时就会触发该报错。 - 你贴出的代码本身还存在两个隐含问题,就算解决了上述迭代报错也无法正常运行:
input()默认返回字符串类型,直接转列表得到的每个元素都是字符串格式的单个数字字符,无法直接和整数2做取模运算,会触发新的类型错误。- 代码中调用的
Even.count(i)、Odd.count(i)是统计列表内指定元素出现次数的方法,不会将元素添加到列表中,运行结束后Even、Odd列表永远为空。
修复方案
修正后的完整可运行代码如下:
# 输入字符串遍历后逐个转为整数,存入数字列表 N = [int(char) for char in input("Enter long number: ")] Even = [] Odd = [] for num in N: if num % 2 == 0: Even.append(num) else: Odd.append(num) print(f"Even: {Even}") print(f"Odd: {Odd}")
内容的提问来源于stack exchange,提问作者grigol tsertsvadze
相关产品推荐
相关产品推荐

