int 对象不可迭代

17 Mar 2025 | 6 分钟阅读

在考虑 Python 语言时,我们可以说该错误主要是在执行代码时出现的,而不是由于不遵守规则。其中一项规则是在程序运行时遍历整数对象。如果我们这样做,它将引发名为整数对象不可迭代的错误。

这里的“可迭代”一词意味着通过一次迭代一个单词或字符串来遍历整个字符串或单词。

  • 如果我们想迭代一个整数值,例如 6,我们不能迭代它。
  • 由于我们无法将其进一步分解为其子序列,因此会引发一个弹出错误,表明我们无法迭代整数值。
  • 问题来了:我们能否迭代一个多于一位数的数字?答案是否定的。这是因为 Python 编译器会将该数字视为单个数字,因此我们得出了相同的结论:整数对象不可迭代;我们无法将其分解。
  • 如果我们想分离多位数中的每个数字,我们将使用不同的方法,但我们可以通过迭代来做到这一点。
  • 为此,我们可以将这些数字存储在该特定数字的列表中。

从上述讨论中,我们熟悉了每当我们迭代任何不可能的整数值时出现的“整数对象不可迭代”错误。此错误属于 **TypeError**;类型错误通常在我们调用任何函数或使用不正确的数据类型运算符时出现。

例如:

如果我们在字符串和整数对象之间执行加法运算,我们会得到一些错误;此错误主要称为类型错误,因为两个对象的 [pinyin]数据类型[/pinyin] 不匹配。因此,我们可以使用 for 循环轻松迭代列表对象,但不能对数字执行相同的操作。我们不能使用 for 循环来分离数字的每个数字,如果我们将其存储在列表中,我们可以做到。

让我们通过一些例子来理解

TypeError 示例:整数对象不可迭代

示例 1:在这里,在此问题中,我们得到了一个随机数字,我们将尝试使用 for 循环进行迭代。

说明

在上面的示例中,我们可以很容易地发现我们想通过逐个读取数字(例如 10)来迭代它。但是,我们无法做到,因为它们被组合视为单个数字,无法逐个数字分解。为了获得所需的输出,我们可以更正上述程序并在其中使用 range 函数。

上述程序的输出

int object is not iterable

更正上述程序

在此更正部分中,我们通过将 j 传递给一个名为 range 的单个函数来替换它;将数字传递给 range 函数后,Python 编程语言将轻松识别 Python 中内置的 range 函数的工作原理,以及它返回一个从 0 开始的数字序列(默认情况下),然后逐个递增,直到达到传递到该函数参数的结束值为止。

上述程序的输出

Enter a random number to check the type error: 10
0
1
2
3
4
5
6
7
8
9  

示例 2:在此问题中,我们得到了一系列随机数字或字符串值,我们将尝试使用 for 循环进行迭代。

说明

在上面的示例中,如果我们观察,我们可以很容易地发现我们想通过逐个读取数字(例如 10)来迭代它。但是,我们无法做到,因为它们被组合视为单个数字,无法逐个数字分解。为了获得所需的输出,我们可以更正上述程序并在其中使用 range 函数。

上述程序的输出

int object is not iterable

更正上述程序

在此更正部分中,我们通过将 j 传递给一个名为 range 的单个函数来替换它;将数字传递给 range 函数后,Python 编程语言将轻松识别 Python 中内置的 range 函数的工作原理,以及它返回一个从 0 开始的数字序列(默认情况下),然后逐个递增,直到达到传递到该函数参数的结束值为止。

上述程序的输出

int object is not iterable

示例 3:在这里,在此问题中,我们得到了一个随机数字,我们将尝试使用 for 循环进行迭代。

说明

在上面的示例中,如果我们观察,我们可以很容易地发现我们想通过逐个读取数字(例如 5)来迭代它,但是我们无法做到,因为它们被组合视为单个数字,无法逐个数字分解。为了获得所需的输出,我们可以更正上述程序并在其中使用 range 函数。

上述程序的输出

int object is not iterable

更正上述程序

在此更正部分中,我们通过将 num 传递给一个名为 range 的单个函数来替换它;将数字传递给 range 函数后,Python 编程语言将轻松识别 Python 中内置的 range 函数的工作原理,以及它返回一个从 0 开始的数字序列(默认情况下),然后逐个递增,直到达到传递到该函数参数的结束值为止。

上述程序的输出

Enter a random number to check the type error: 10
0
1
2
3
4
5
6
7
8
9   

示例 4:在此问题中,我们得到了一个随机数字,并且我们想分离该数字的所有数字。

说明

在上面的示例中,如果我们观察,我们可以很容易地发现我们想通过逐个读取数字(例如 110892)来迭代它,但是我们无法做到,因为它被组合并视为单个数字,无法逐个数字分解。但是我们将所有分离的数字存储在一个列表中,以便轻松访问数字的每个数字,但在上面的示例中,出现了类型错误,即整数对象不可迭代。现在为了获得所需的输出,我们可以更正上述程序。

上述程序的输出

int object is not iterable

更正上述程序

在此更正部分中,我们通过将 num 传递给一个名为 str 的单个函数来替换它;使用此函数,我们可以轻松地分解该特定数字,并将其以组合形式存储在列表中,Python 编程语言将轻松识别 Python 中内置的 str 函数的工作原理。

上述程序的输出

int object is not iterable
下一个主题Python Peewee 库