在 Python 中修复 TypeError: Int Object Is Not Iterable 错误

在Python中,当您在操作或函数中使用错误数据类型的对象时,会引发TypeError。例如,添加字符串和整数将导致TypeError

如果你试图循环一个不可迭代的整数,就会出现错误TypeError: 'int' object is not iterable。Python中的可迭代对象是列表、元组、字典和集合。

本教程将教你修复Python中的TypeError: 'int' object is not iterable错误。

在 Python 中修复 TypeError: Int Object Is Not Iterable 错误

让我们看一个Python中的TypeError异常的例子。

s="apple"
counter = 0
for i in len(s):
    if i in ('a','e','i','o','u'):
        counter += 1
print("No. of vowels:" + str(counter))

输出:

Traceback (most recent call last):
  File "c:\Users\rhntm\myscript.py", line 3, in <module>
    for i in len(s):
TypeError: 'int' object is not iterable

异常在代码for i in len(s)的第3行引发,因为len()返回一个整数值(给定字符串的长度)。在Python中,int对象是不可迭代的,所以你不能通过整数使用for循环。

若要修复此错误,必须确保循环遍历可迭代对象。您可以删除len()函数并迭代字符串。

s="apple"
counter = 0
for i in s:
    if i in ('a','e','i','o','u'):
        counter += 1
print("No. of vowels:" + str(counter))

输出:

Number of vowels:2

或者,您也可以使用enumerate()函数来迭代字符串中的字符。

counter = 0
s="apple"
for i, v in enumerate(s):
    if v in ('a','e','i','o','u'):
        counter += 1
print("No. of vowels:" + str(counter))

输出:

Number of vowels:2

您可以使用dir()函数检查对象是否可迭代。如果输出包含魔术方法__iter__,则对象是可迭代的。

s="apple"
print(dir(s))

输出:

 

在 Python 中修复 TypeError: Int Object Is Not Iterable 错误

 

字符串s可迭代。

TypeError是Python中常见的错误之一。当您使用错误数据类型的对象执行操作或函数时,就会发生这种情况。

当迭代整型数据类型时,会引发错误int object is not iterable。现在你应该知道如何在Python中解决这个问题。