Python龟圈函数

Python turtle circle function

所以我正在读一本书来学习 python,我读到了关于模块 turtle 的部分内容。 所以在解释完之后,它会给你一些练习。 其中之一是定义一个创建正多边形的函数。 我让这个工作。

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)

例如这画了一个正五边形。

下一个练习要求你画一个 "circle" 改变多边形的边数。 问题是有时它不起作用并且 polygon/circle 不关闭。 我试图通过多次更改长度和边数或仅更改两者之一来找到解决方案,但我没有成功。 例如,lenght = 10 和 n°sides = 140 不起作用,而 lenght = 20 和 n°sides = 120 起作用。

有人可以解释一下吗?

找到解决方案。 作为初学者,我忘记了整数和浮点数。 这就是 "circle" 没有关闭的原因。

您的代码在 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 turtle 自己的 circle() 方法实际上绘制多边形的默认假设是 60 条边足以在屏幕上看起来像一个圆。除非圆非常小(然后它使用更少的边)或者用户通过 steps 参数坚持使用更多(或更少)的边。

尝试输入 360.0 而不是 360,因为 Python 的初始值是整数。
我们想把它转换成小数,所以我们把 .0 放在 360 之后。