我想写一个程序,改变海龟图像的顺序,每次我按'n'键。你知道吗
它应该首先从“classic”形状开始,每次按下“n”键时,将形状更改为“circle”、“arrow”、“turtle”,然后循环回“classic”。你知道吗
import turtle
canvas = turtle . Screen ()
t = turtle . Turtle ()
def changeTurtle () :
for n in range (1, 5) :
if n == 1 :
t . shape ('circle')
elif n == 2 :
t . shape ('arrow')
elif n == 3 :
t . shape ('turtle')
elif n == 4 :
t . shape ('classic')
t . shape ('classic') # first turtle 'classic' shape
canvas . onkey (changeTurtle, 'n') # press 'n'key
canvas . listen ()
turtle . mainloop ()
当我按“n”键时,它应该改变一次。问题是,变化太快了。你知道吗
下面是我如何对这个问题进行过度设计(并消除了对
global
语句的需要):用
for
循环一次遍历n
的所有可能值。相反,您需要做的是将值n
保存在函数外部,并在每次调用函数时更改它:替代函数的另一种方法是使用一个无限迭代器(比如
itertools.cycle
),加载所有要循环的形状。当你想要下一个形状时,你的程序只需要请求它,改变海龟,然后继续它以前做的任何事情。以下程序演示了如何执行此操作:相关问题 更多 >
编程相关推荐