有人能帮我用Python制作一个多边形生成器吗?
这个程序应该要求用户输入一个4到8之间的数字,然后小海龟就会根据这个数字画出相应数量的边。
内部角度的计算公式是:
这里的N是边的数量,公式是(N - 2)乘以180等于x,然后用x除以N,就可以得到每一条边的角度。
>>> import turtle
>>> t=turtle.Pen()
>>> usernum = int(input('Give me a number between 4 and 8: '))
Give me a number between 4 and 8: 5
>>> if usernum < 4 or usernum > 8:
print ("invalid number!")
else:
draw
myangle = (((numSides-2) * 180)/ numSides)
turtle.right(180 - myangle)
1 个回答
4
既然你展示了你实际尝试过的内容,我就给你一点提示,不过你几乎肯定可以通过几次快速的谷歌搜索自己找到解决办法。
不管出于什么原因,我在IDLE中运行海龟图形脚本时遇到了一些问题,不知道你是否会更顺利。
import turtle
t = turtle.Pen()
num_sides= int(input("Give me a number between 4 and 8: "))
side_length = 30
while True:
if (num_sides < 4) or (num_sides > 8):
num_sides = int(input("Invalid Number! Please enter a new one from 4-8: "))
else:
myangle = 360 / side_length
break
for i in range(num_sides):
t.forward(side_length)
t.right(myangle)
如果你像我一样在IDLE中运行有问题,可以试着在命令行的Python解释器中运行。使用稍微修改过的版本,我制作了所有边数为 num_sides = range(3, 15)
的多边形。需要注意的是,我们每次都不能准确回到起点,是因为使用了整数而不是浮点数。把它改成浮点数应该能解决这个问题。