我正在尝试使用 Python/Turtle 来实现这样的结果:
我画了不均匀的正方形,但我的意思是它们是均匀的。正方形也可以是任何形状,具体取决于用户输入(例如,5 用于多边形)。
到目前为止,这是我的代码:
import turtle
import time
import random
print ("This program draws shapes based on the number you enter in a uniform pattern.")
num_str = input("Enter the side number of the shape you want to draw: ")
if num_str.isdigit():
squares = int(num_str)
angle = 180 - 180*(squares-2)/squares
turtle.color(random.random(),random.random(), random.random())
turtle.begin_fill()
count = 0
x = -80
y = -80
turtle.setpos(x,y)
turtle.down()
while count < 8:
x += 50
y += 50
turtle.goto(x,y)
for i in range(squares):
count += 1
turtle.forward(20)
turtle.left(angle)
turtle.forward(20)
print (turtle.pos())
turtle.end_fill()
time.sleep(15)
turtle.bye()
这就是我得到的:
我得到的错误是:我怎样才能让它打印出总共 8 个形状,而不是只有 2 个,尽管由于计数 += 1 < 8,循环会使其重复 8 次?
我认为循环会通过每次添加 50、50 来改变 x 和 y 的位置,然后我会调整它以提供正确的坐标来制作我想要的形状,但它甚至不会显示全部 8?
我花了一段时间重新配置代码,但不是永远反复试验,我想也许一些帮助会起作用,谢谢。
我正在使用 Python 3.2.3