这是我迄今为止所拥有的,但它的工作并不顺利。我正在尝试对等边多边形中的边数进行用户输入并让乌龟绘制它
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()
答案 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
答案 1 :(得分:0)
当我运行此代码时,有两个问题。
第一个错误是for循环。 For循环不能遍历整数。因此,如果要运行for循环3次,则不能只将3传递给for循环。解决此问题的标准方法是使用range()
函数。为此,您只需将变量传递给它,它将创建一个列表对象,其对象的编号从0到(x - 1)。例如,如果我调用range(5)
,我会得到一个这样的数组:[0, 1, 2, 3, 4]
。所以代码看起来像
for i in range(sides):
那将'正确迭代。
还有第二个错误,但我不会告诉您如何解决这个问题,以便您可以尝试解决这个问题。如果您无法弄清楚如何正确绘制边,请评论我的回复,我将编辑此帖。