You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python turtle库代码在IDLE运行遇input()后窗口无响应求助

问题根因

turtle底层基于Tkinter GUI框架,GUI窗口正常响应的前提是主线程持续运行Tkinter事件循环。你使用控制台input()语句时会直接阻塞主线程,事件循环停止运行,就会触发绘图窗口未响应的问题。
Trinket在线编程平台对turtle和input的交互做了自定义适配,所以可以正常运行,本地原生Python环境没有这类适配,加turtle.done()也没用,因为done()本身就是启动事件循环的方法,主线程被input()阻塞后这个方法根本无法正常执行。

解决方案

优先替换控制台输入为turtle原生的GUI输入框,无需改动其他业务逻辑,仅修改两处输入代码即可,输入返回值类型和input()完全一致,原有判断逻辑可以直接复用:

  1. 修改putBall()函数中的输入代码
    原代码:
print("which column to put your ball?")    
column=input()

替换为:

column = turtle.textinput("落子选择", "请输入要落子的列号(1-5):")
  1. 修改游戏结束后询问是否重开的输入代码
    原代码:
print('Do you want to play again?')
playAgain=input()

替换为:

playAgain = turtle.textinput("游戏结束", "是否再来一局?输入yes/no:")

修改完成后运行即可避免窗口未响应的问题。

内容的提问来源于stack exchange,提问作者michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 04:21:02