Python龟圈功能

时间:2017-04-30 03:43:18

标签: python geometry turtle-graphics

所以我正在读一本学习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工作。

有人可以解释一下吗?

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

2 个答案:

答案 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后。