首页 > 解决方案 > TypeError: 'int' object is not iterable, 不知道为什么会这样

问题描述

def rectangleArea(l):
    lt = list(l[0])
    l = lt[:3:2]
    l.sort()
    x = l[1] - l[0]
    l = lt[1:4:2]
    l.sort()
    y = l[1] - l[0]
    area = x * y
    return area
l = [(30, 60, 60, 30), (50, 10, 10, 50)]
for i in range(2):
    print("Rectangle")
    la = l[i]
    print(la)
    area = rectangleArea(la)
    print(area)

对不起,我的英语不好。如您所见,元组在列表“l”中,我不想编辑它。当我在没有 for 循环的情况下运行它时,它运行良好。并且使用 for 循环,会出现“TypeError: 'int' object is not iterable”。错误消息如下所示:

Traceback (most recent call last):
  File "C:/Users/Administrator/Desktop/MP09/help.py", line 19, in <module>
    area = rectangleArea(la)
  File "C:/Users/Administrator/Desktop/MP09/help.py", line 3, in rectangleArea
    lt = list(l1[0])

我查了一下,我的情况和别人不一样。我想这与la = l[i]有关,但我不确定。这段代码有什么问题。请帮我

标签: pythonpython-3.x

解决方案


lt = list(l[0])lt = list(l)在您的代码中替换它。

您的代码一个接一个地选择矩形边并传递给函数。现在在函数内部,您只需要将元组转换为列表,但您要做的是选择其中的第一个元素。


推荐阅读