Python类型错误:'list'对象不能被解释为整数

3

我是新手,请多包涵。我一直收到错误信息“TypeError: 'list' object cannot be interpreted as an integer”。我不知道如何解决这个错误。希望能得到帮助。

import turtle

wn = turtle.Screen()

bob = turtle.Turtle()
List = ["red", "orange", "yellow", "green", "blue", "violet"]
List2 = [8, 7, 6, 5, 4, 3]
C = (-1)
S = (9)

bob.speed(2)
bob.penup()
bob.left(90)
bob.forward(70)
bob.right(90)
bob.pendown()
def drawAnyShape(Side):
    for i in range(0,Side):
        bob.forward(50)
        bob.right(360/Side)

for i in range(3,9):
    S = (S-1)
    C = (C+1)
    bob.begin_fill()
    bob.color(List[C])
    drawAnyShape([S])
    bob.end_fill()

wn.mainloop()

1
drawAnyShape([S]) 你正在使用列表调用它,但是尝试将该列表用作 range 的参数。 - Morgan Thrapp
1
drawAnyShape([S]) -> def drawAnyShape(Side):,Side 是单元素列表,然后将其传递给 range(0,Side)range(0, ['a', 'b', 'c'])(或任何其他列表)不是正确的调用方式。 - Łukasz Rogalski
1个回答

0
请尝试这个:
import turtle

wn = turtle.Screen()

bob = turtle.Turtle()
List = ["red", "orange", "yellow", "green", "blue", "violet"]
List2 = [8, 7, 6, 5, 4, 3]
C = (-1)
S = (9)

bob.speed(2)
bob.penup()
bob.left(90)
bob.forward(70)
bob.right(90)
bob.pendown()
def drawAnyShape(Side):
    for i in range(0,Side):
        bob.forward(50)
        bob.right(360/Side)

for i in range(3,9):
    S = (S-1)
    C = (C+1)
    bob.begin_fill()
    bob.color(List[C])
    drawAnyShape(S)  # <- problem is here!
    bob.end_fill()

wn.mainloop()

1
你能解释一下原始代码中的错误,并说明你做了哪些修改来修复它吗? - Paul Rooney
如上所述,您有一个包含s值的单例列表[S]。在这个版本中,传入了变量S,这是函数drawAnyShaperange(0, Side)所期望的。 - FintanH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接