无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

(typeerror: ‘int’ object is not) Python报”TypeError: ‘int’ object is not iterable “的原因以及解决办法 Python整数不能被迭代 全网首发(图文详解1)

前沿技术 Micheal 6个月前 (06-02) 55次浏览 已收录 扫描二维码

(typeerror: ‘int’ object is not) Python报”TypeError: ‘int’ object is not iterable “的原因以及解决办法

Python报这个错误,表示你对一个整数进行了迭代,而整数数据类型并不是可迭代的对象。可迭代的对象有序列类型,比如列表、元组和字符串。

下面以一个具体的例子来解释如何产生和修得这种错误:

# 错误代码:
def sum_num(n):
    for i in n:
        print(i)

num = 1234
sum_num(num)

# 运行这个代码会产生错误:TypeError: 'int' object is not iterable

上面代码中,我们把一个整数传给了sum_num函数,然后在函数里面我们试图对这个整数进行迭代处理。而整数并不能进行迭代,所以就会产生这个错误。

修复办法是确保你的迭代函数处理的一定是可以迭代的数据类型。如果你确实需要对整数进行类似的操作,可以先把整数转换成字符串或者列表。下面是修复后的代码:

# 修复后的代码:
def sum_num(n):
    n = list(str(n))
    for i in n:
        print(i)

num = 1234
sum_num(num)

# 这样就不会再报错了,且会打印出1234中的每一个数字。

在修复后的代码中,我们首先把整数1234转为字符串’1234’,然后再把这个字符串转化为列表[‘1’, ‘2’, ‘3’, ‘4’]。然后我们就可以对这个列表进行迭代了。

这种报错的根本原因就是,我们试图对一个不支持迭代的对象进行迭代。修复办法也很容易,那就是确保迭代的对象一定支持迭代操作。在编写代码的时候,如果我们需要对一个变量进行迭代操作,我们就要确保这个变量是可以迭代的类型。
(numpy矩阵相乘) 详解NumPy矩阵乘法操作 NumPy中的矩阵乘法:dot函数和@运算符 全网首发(图文详解1)
(解除b站区域限制) 解除b站bilibili区域限制的五种方法 解除 B 站 地区限制的 5 种方法 全网首发(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝