如何解决Python奇偶判断程序中的TypeError: 'int' object is not iterable错误?
解决
TypeError: 'int' object is not iterable 问题 嘿,我来帮你搞定这个错误!咱们先拆解一下问题出在哪:
错误原因
你遇到的TypeError核心问题是:你试图遍历一个单个整数。当你执行inp=eval(input('input= '))时,如果用户输入的是单个数字(比如5),inp会变成一个int类型的值。而Python里的整数不是可迭代对象——你没法用for i in inp来“逐个取出”整数里的元素,这就触发了报错。
看你的代码逻辑,你已经通过外层for inp in range(n)循环控制了要输入的数字个数,每次循环只需要处理单个数字,完全不需要内层的for循环。
修正后的代码
我帮你调整了代码,同时把eval换成了更安全的int()(eval会执行任意输入的代码,存在安全风险,而且如果用户输入非数字内容会抛出更奇怪的错误):
def number(): n = int(input('How many numbers are there in your input: ')) for _ in range(n): num = int(input('input= ')) if num % 2 == 0: print(num, ' is even') else: print(num, ' is odd') number()
关键修改点
- 移除了多余的内层
for i in inp循环,直接对单个数字num进行奇偶判断 - 把变量名
inp改成了更清晰的num,避免和循环变量混淆 - 替换
eval为int(),提升代码安全性和稳定性 - 去掉了不必要的
continue语句——if/else分支执行完后自然会进入下一次循环,不需要额外的continue
运行示例
假设你运行程序后输入:
3 input= 1 input= 2 input= 3
程序会输出:
1 is odd 2 is even 3 is odd
内容的提问来源于stack exchange,提问作者Shafin Hasnat
相关产品推荐
相关产品推荐

