Python Turtle 在 window 关闭时显示错误
Python Turtle shows an error when window is closed
我在 python 中遇到问题。
我正在制作一个名为“Stars”的小程序,其中包含超过 29 行的海龟图形。
当我在程序完成之前关闭 turtle window 时,它会显示错误。这不是一个大问题,但是当我将它转换为 exe(使用 pyinstaller)然后在程序完成之前关闭 window 时,会弹出一个警告框并显示:“无法执行脚本 Stars”。
有没有比将每一行都放在 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 中遇到问题。 我正在制作一个名为“Stars”的小程序,其中包含超过 29 行的海龟图形。 当我在程序完成之前关闭 turtle window 时,它会显示错误。这不是一个大问题,但是当我将它转换为 exe(使用 pyinstaller)然后在程序完成之前关闭 window 时,会弹出一个警告框并显示:“无法执行脚本 Stars”。
有没有比将每一行都放在 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")