我需要帮助弄清楚我的代码有什么问题! (“ int”问题)

时间:2018-08-25 18:36:25

标签: python int

我在弄清楚为什么我的代码是错误的时遇到了问题。

def draw_poly(t, n, size):
for s in (n):
t.forward(sz)
t.left(45)

draw_poly (liz, 8, 50)

我正在尝试制作一个八角形,但是它不断给我一个“'int'对象不可迭代”错误。

如果您能帮助我,我将永远感激不已,谢谢。

2 个答案:

答案 0 :(得分:2)

for循环:

for s in (n):

期望n具有某种可迭代性:listtupledictionary等,但是您传递的是整数(int) -因此出现错误。

如果您希望s取值012...n,则应使用{ {1}}函数产生一个可迭代的数字序列,直到传递给它的数字为止。

因此,您可能想要的是:

range()

这将允许您在该代码块中使用整数变量for s in range(n):


如果要调试代码,通常有助于打印出变量的值,以检查变量的计算结果是否符合您的预期。

例如,

s

给予:

for i in range(4):
    print(i)

这是意料之中的。

答案 1 :(得分:0)

正确的int迭代器应为range(int),因此,请使用以下命令:for s in range(n):

为了将来使用range():此函数将创建一个可迭代的int对象的列表。在某些情况下,使用xrange()更好,特别是对于大循环。 即range(1000000000)会在内存中创建一个巨大的对象,而xrange(1000000000)不会在内存中创建一个大对象,尽管它的工作方式类似,可以为您一个一个一个的整数。