所以我正在读一本学习python的书,我参与了关于模块龟的一部分。 所以在解释之后,它会给你一些练习。 其中之一是定义一个创建正多边形的函数。 我让这个工作。
import turtle
bob = turtle.Turtle()
def polygon(t, l, n):
angle = 360/n
for i in range(n):
t.fd(l)
t.lt(angle)
polygon(bob, 40, 5)
例如,这会绘制一个正五边形。
下一个练习要求您绘制一个“圆”,以更改多边形的边数。 问题是,有时它不起作用,多边形/圆圈不会关闭。 我试图找到解决方案,通过改变长度和侧面数量或两者中只有一个来改变大量时间,但我没有成功。 例如,lenght = 10并且n°sides = 140不起作用,而是lenght = 20并且n°sides = 120工作。
有人可以解释一下吗?
找到解决方案。 作为初学者,我忘记了整数和浮点数。 这就是“圈子”没有关闭的原因。
答案 0 :(得分:0)
您的代码在Python 3中运行良好,但由于分区的工作方式不同,因此未在Python 2中关闭多边形。修复太简单了使用360.0而不是360,然后它在两者中都可以正常工作:
from turtle import Turtle, Screen
def polygon(t, l, n):
angle = 360.0 / n
for _ in range(n):
t.fd(l)
t.lt(angle)
bob = Turtle()
polygon(bob, 10, 140)
screen = Screen()
screen.exitonclick()
Python龟自己的circle()
方法实际绘制多边形,默认假设60边足以在屏幕上看起来像一个圆圈。除非圆圈非常小(然后它使用较少的边)或者用户通过steps
参数坚持更多(或更少)边。
答案 1 :(得分:0)
尝试将360.0代替360,因为Python的初始值是整数。
我们要将其转换为小数,这就是为什么将.0放在360后。