python - 关闭窗口时 Python Turtle 显示错误
问题描述
我在 python 中有一个问题。我正在制作一个名为“Stars”的小程序,其中包含超过 29 行的海龟图形。当我在程序完成之前关闭海龟窗口时,它会显示错误。这不是什么大问题,但是当我将它转换为exe(使用pyinstaller)然后在程序完成之前关闭窗口时,会弹出一个警告框并说:“执行脚本星失败”。
有没有比将每一行都放在 try-except 中更好的方法来忽略这一点?:
try:
#each line of code
except:
pass
提前致谢
当它有帮助时:我在 Python 3.7.7 和 Windows 10 中
这是代码:
from turtle import *
shape("turtle")
width(2)
color("gold")
begin_fill()
for _ in range(5):
forward(100)
right(2 * 360/5)
forward(100)
left(360/5)
end_fill()
penup()
goto(0, 200)
write("STAR", font = ("Arial", 50), align = "center")
goto(-200, -200)
pendown()
stamp()
forward(50)
stamp()
forward(50)
stamp()
forward(50)
stamp()
forward(50)
stamp()
forward(50)
stamp()
forward(50)
stamp()
forward(50)
exitonclick()
这是 pyinstaller 命令:
pyinstaller --noconfirm --onefile --noconsole "C:/Users/jeeva/Desktop/Tanmay_new/python/Python_turtle_answers/Stars.py"
解决方案
你可以解决这个问题,就像你所说的那样通过try..except
整行阻塞:
try:
# all 29 lines of your code:
except:
pass
它会工作得很好!
但是,我真的建议将您的程序安排成不同的功能;喜欢:
创建海龟的功能:
def create_turtle(): shape("turtle") width(2) color("gold")
绘制和填充星形的函数:
def draw_fill_star(): begin_fill() for _ in range(5): forward(100) right(2 * 360/5) forward(100) left(360/5) end_fill()
写“星”字的函数:
def write_start(): penup() goto(0, 200) write("STAR", font = ("Arial", 50), align = "center")
写邮票的功能:
def write_stamps(): goto(-200, -200) pendown() stamp() forward(50) stamp() forward(50) stamp() forward(50) stamp() forward(50) stamp() forward(50) stamp() forward(50) stamp() forward(50) exitonclick()
最后,一个函数来执行它们。
def execute(): create_turtle() draw_fill_star() write_start() write_stamps()
现在,您可以将函数包装到一个try...except
块中,如下所示:
try:
execute()
except Terminator:
print("Program has been terminated")
推荐阅读
- python - 自定义 OpenMetrics 未传播到 DataDog
- sql - REGEXP_SUBSTR 捕获组
- python - 单元测试:使用 Python 模拟运行“aws s3 sync”的子进程
- javascript - 只运行一次 Javascript 代码,并且只有一个地方可以放置代码
- php - datatables 添加动态数据
- c# - .NET - 行以序列化结束
- compression - 霍夫曼树是如何传播的?
- typescript - 在页面之间切换时,resizeObserver 没有被激活
- export - 有没有办法将 Informatica maplet“图形”数据导出到简单的 csv/Excel 文件?
- gremlin - 在 gremlin 查询中选择多个边和顶点