尽管存在代码,但海龟图形未显示
Turtle graphics not showing although code to do so is present
我的代码在下面,但是尽管这应该可以工作,因为我正在按照我的教授的指示进行操作,而他写的代码在我的机器上不起作用。乌龟图形 window 甚至没有显示,我错过了什么吗?
这就是问题所在。乌龟图形 window 不会出现 什么都没有执行,我很困惑。
这是 shell
中的输出
>>> drawKoch(1)
>>>
和下面的代码:
def koch(n):
if n == 0:
return 'F'
tmp = koch(n-1)
return tmp + 'L' + tmp +'R' + tmp + 'L' + tmp
from turtle import Screen, Turtle
def drawKoch(n):
s = Screen()
t = Turtle()
directions = koch(1)
for move in directions:
if move == 'F':
t.forward (300/3**n)
if move == 'L':
t.lt(60)
if move == 'R':
t.rt(120)
s.bye()
因为最后一行的s.bye()
。
根据 documentation,调用 bye
将关闭 window。
所以你告诉 Python 要做的是:
- 打开window
- 移动乌龟
- 关闭 window
由于这些步骤 运行 非常快,您甚至根本无法判断它们是否 运行ning。
要解决此问题,您可以将 bye
替换为 exitonclick
。
正如@satoru 所说,我的问题是我正在使用 s.bye() ,它会在我看到任何事情发生之前关闭 python window。
我需要使用并且目前正在使用的是s.exitonclick()
咯咯笑
我的代码在下面,但是尽管这应该可以工作,因为我正在按照我的教授的指示进行操作,而他写的代码在我的机器上不起作用。乌龟图形 window 甚至没有显示,我错过了什么吗?
这就是问题所在。乌龟图形 window 不会出现 什么都没有执行,我很困惑。
这是 shell
中的输出>>> drawKoch(1)
>>>
和下面的代码:
def koch(n):
if n == 0:
return 'F'
tmp = koch(n-1)
return tmp + 'L' + tmp +'R' + tmp + 'L' + tmp
from turtle import Screen, Turtle
def drawKoch(n):
s = Screen()
t = Turtle()
directions = koch(1)
for move in directions:
if move == 'F':
t.forward (300/3**n)
if move == 'L':
t.lt(60)
if move == 'R':
t.rt(120)
s.bye()
因为最后一行的s.bye()
。
根据 documentation,调用 bye
将关闭 window。
所以你告诉 Python 要做的是:
- 打开window
- 移动乌龟
- 关闭 window
由于这些步骤 运行 非常快,您甚至根本无法判断它们是否 运行ning。
要解决此问题,您可以将 bye
替换为 exitonclick
。
正如@satoru 所说,我的问题是我正在使用 s.bye() ,它会在我看到任何事情发生之前关闭 python window。
我需要使用并且目前正在使用的是s.exitonclick()
咯咯笑