如何对等边多边形中的边数进行用户输入并让乌龟绘制它

时间:2013-11-17 22:24:16

标签: python turtle-graphics

这是我迄今为止所拥有的,但它的工作并不顺利。我正在尝试对等边多边形中的边数进行用户输入并让乌龟绘制它

import turtle 

window=turtle.Screen()

draw=turtle.Turtle()

def poly(sides):
    '''draws equilateral polygon with x number of sides
    '''

    draw.color('red')
    draw.pensize(5)

    for i in sides:
        draw.forward(150)
        draw.left(90)

window.mainloop()

2 个答案:

答案 0 :(得分:0)

  
    

你可以采取两种方式来做这件事。

  

效率低下的方式:

sides = input('Enter a "." for every side you want: ')
sides = list(sides)

那将分裂每个“。”进入一个新的项目,现在是一个列表。更好的方法可能是你正在寻找的东西,用户只需输入他们想要的边数:

sides = int( input('Enter number of sides: ') )

for side in range(sides):
    draw()

范围需要一系列数字才能完成。例如:

>>> for num in range(6):
...    print num
...
0
1
2
3
4
5
  
    

More on the range function

  

答案 1 :(得分:0)

当我运行此代码时,有两个问题。

第一个错误是for循环。 For循环不能遍历整数。因此,如果要运行for循环3次,则不能只将3传递给for循环。解决此问题的标准方法是使用range()函数。为此,您只需将变量传递给它,它将创建一个列表对象,其对象的编号从0到(x - 1)。例如,如果我调用range(5),我会得到一个这样的数组:[0, 1, 2, 3, 4]。所以代码看起来像

    for i in range(sides):

那将'正确迭代。

还有第二个错误,但我不会告诉您如何解决这个问题,以便您可以尝试解决这个问题。如果您无法弄清楚如何正确绘制边,请评论我的回复,我将编辑此帖。