turtle.down() 不会放下笔

The turtle.down() does not bring the pen down

import turtle


def draw_petal():
    """This function draws a singel petal """
    turtle.forward(30)
    turtle.right(45)
    turtle.forward(30)
    turtle.right(135)
    turtle.forward(30)
    turtle.right(45)
    turtle.forward(30)
    turtle.right(135)


def draw_flower():
    """This function uses the draw_petal function to draw a flower"""
    turtle.left(45)
    draw_petal()
    turtle.left(90)
    draw_petal()
    turtle.left(90)
    draw_petal()
    turtle.left(90)
    draw_petal()
    turtle.left(135)
    turtle.forward(150)


def draw_flower_advanced():
    """This....."""
    draw_flower()
    turtle.right(90)
    turtle.up()
    turtle.forward(150)
    turtle.right(90)
    turtle.forward(150)
    turtle.left(90)
    turtle.down()


def draw_flower_bed():
    """Theis function......"""
    turtle.up()
    turtle.forward(200)
    turtle.left(180)
    turtle.down()
    draw_flower_advanced()
    draw_flower_advanced()
    draw_flower_advanced()


draw_flower_bed()

turtle.done()

============================

由于某种原因,乌龟从不碰 canvas 所以笔总是向上。

当我使用 pendown() 时它的工作,但 python 3.6 应该有 down() 功能也是如此,不是吗?

要动出线就落笔,要动不出线就提笔

你把它们颠倒了。

turtle.up()
turtle.forward(200)
turtle.left(180)
turtle.down()

应该是:

turtle.down()
turtle.forward(200)
turtle.left(180)
turtle.up()

您断言 turtle.down() 存在于 3.6 中是正确的。您还可以使用 turtle.pd() 因为它们都是 turtle.pendown().

的别名

作为一个数据点,我 运行 你的代码与我电脑上的完全一样,它运行没有问题,在屏幕上画了 3 朵花。

也许您的 python 安装已损坏?您可以使用 dis 库验证 turtle.down 函数。 运行 这个在 shell:

import turtle
import dis
dis.dis(turtle.down)

这应该会产生大量反汇编字节码形式的输出。如果没有,则您的 python 安装可能已损坏,应重新安装。

尝试更改颜色,color("red")。您可能会发现笔实际上已经放下了,但正在使用与背景颜色不明显的前景色进行绘图。

否则,您的代码看起来正确并且对我来说工作得很好。