【发布时间】:2017-11-11 21:43:42
【问题描述】:
我遇到了分形曲线问题。我在 OS X El Capitan 上的 Python 2.7 和 3.6 上都试过了。我不能让乌龟动起来。这是直接取自书中的代码。 screenshot of turtle not moving 设置为0,根据书本应该画一条直线。但它不动。这本书给了我们代码:
from turtle import Turtle
def cCurve(t, x1, y1, x2, y2, level):
def drawLine(x1, y1, x2, y2):
t.up()
t.goto(x1, y1)
t.down()
t.goto(x2, y2)
if level == 0:
drawLine(x1, y1, x2, y2)
else:
xm = (x1 + x2 + y1 - y2) //2
ym = (x2 + y1 + y2 - x1) //2
cCurve(t, x1 ,y1 ,xm, ym, level -1)
cCurve(t, xm, ym, x2, y2, level -1)
def main():
level = int(input("Enter the level(0 or greater):" ))
t = Turtle()
t.hideturtle()
cCurve(t, 50, -50, 50, 50, level)
main()
【问题讨论】:
-
if level == 0的缩进错误; -
drawLine()函数的定义嵌套在cCurve()函数中,它永远不会被调用,因此不会绘制任何内容。 -
书上说这个程序包括3个函数定义cCurve、drawLine和main。因为 drawLine 是一个辅助函数,所以它的定义嵌套在 cCurve 中。这就是它嵌套的原因。
-
@trincot 谢谢。你帮我解决了为什么它不动的问题。
标签: python recursion turtle-graphics fractals