Python Turtle窗口打开后立即闪退问题求助
Turtle窗口立即关闭问题及代码修复
核心问题:窗口自动关闭
你的代码执行完所有逻辑后,没有启动turtle的事件循环,导致程序直接结束,窗口随之关闭。只需在代码末尾添加一行代码就能解决:
turtle.done()
(或者用turtle.mainloop(),两者功能完全一致,都是维持窗口运行直到手动关闭)
额外问题:部分按键绑定失效
原代码里"w" or "Up"这种写法是错误的,Python中or会返回第一个为真的字符串,所以实际上只绑定了w和s键,方向键Up和Down根本没生效。需要分开绑定每个按键:
比如把:
turtle.onkeypress(ileri, "w" or "Up") turtle.onkeypress(geri, "s" or "Down")
改成:
turtle.onkeypress(ileri, "w") turtle.onkeypress(ileri, "Up") turtle.onkeypress(geri, "s") turtle.onkeypress(geri, "Down")
修复后的完整代码
import turtle import time turtle.pensize(5) turtle.bgcolor("black") turtle.pencolor("white") turtle.turtlesize(2,2,2) def ileri(): turtle.fd(5) def geri(): turtle.backward(5) def sag(): turtle.right(90) turtle.fd(5) turtle.left(90) def sol(): turtle.left(90) turtle.fd(5) turtle.right(90) def sagdon(): turtle.right(10) def soldon(): turtle.left(10) def siyah(): turtle.pencolor("black") def yesil(): turtle.pencolor("green") def acikyesil(): turtle.pencolor("lightgreen") def mavi(): turtle.pencolor("blue") def acikmavi(): turtle.pencolor("lightblue") def sari(): turtle.pencolor("yellow") def kirmizigul(): turtle.pencolor("red") # 修复按键绑定 turtle.onkeypress(ileri, "w") turtle.onkeypress(ileri, "Up") turtle.onkeypress(geri, "s") turtle.onkeypress(geri, "Down") turtle.onkeypress(sag, "d") turtle.onkeypress(sol, "a") turtle.onkeypress(sagdon, "Right") turtle.onkeypress(soldon, "Left") turtle.onkeypress(siyah, "0") turtle.onkeypress(yesil, "1") turtle.onkeypress(acikyesil, "2") turtle.onkeypress(mavi, "3") turtle.onkeypress(acikmavi, "4") turtle.onkeypress(sari, "5") turtle.onkeypress(kirmizigul, "6") turtle.listen() # 维持窗口运行 turtle.done()
内容的提问来源于stack exchange,提问作者Eral
相关产品推荐
相关产品推荐

