我使用的是Windows 10,PyScripter 2.6,Python 3.4.4。
我是编程的新手。我正在学习python并使用turtle模块创建程序。
乌龟模块创建一个窗口,让海龟绘制你告诉他们在窗口画布上绘制的内容。
当我的乌龟程序出现错误时,乌龟窗口将进入"没有响应"州。它崩溃了。我必须关闭它,它会向Microsoft发送错误报告等等。
我的问题是 ,是否有一些代码或某种方法来阻止"龟背窗口#34;从崩溃到进入"没有回应"状态?
我已尝试过调试和语法检查,但它们无法阻止此问题。
我的一部分告诉我这就是它的方式。如果你编写错误的代码,你的程序就会崩溃,但在开发环境中,似乎有一种方法来处理"处理"用这些东西。
由于 添
代码和错误消息
CODE
def main():
pass
if __name__ == '__main__':
main()
import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")
tess = turtle.Turtle()
tess.color("hotpink")
tess.pensize(5)
alex = turtle.Turtle
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)
tess.right(180)
tess.forward(80)
for x in [0,1,2,3]:
alex.forward(50)
alex.left(90)
wn.mainloop()
错误
消息文件名称行位置
回溯
C:\ py \ 3 \ program1.py 41
TypeError:forward()缺少1个必需的位置参数:'距离'
答案 0 :(得分:0)
代码中的错误就在这一行:
alex = turtle.Turtle
应该是:
alex = turtle.Turtle()
但是,让我们解决你的更大问题。我认为程序中的简单错误会导致长时间的崩溃,导致很难快速转换调试和测试周期。 (如果不是,请使用当前的引文。)虽然我无法在我的系统上重现这种行为,但我们可以尝试一些东西(仅用于开发,因为如果它存在于完成的代码中,人们会不屑一顾,因为异常是太宽泛了):
import sys
from turtle import Turtle, Screen
try:
screen = Screen()
screen.bgcolor("lightgreen")
screen.title("Tess & Alex")
tess = Turtle()
tess.color("hotpink")
tess.pensize(5)
for _ in range(3):
tess.forward(80)
tess.left(120)
tess.right(180)
tess.forward(80)
alex = Turtle
for _ in range(4):
alex.forward(50)
alex.left(90)
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
print(exc_type, "Line:", exc_tb.tb_lineno, "\n", e)
exit()
screen.mainloop()
请注意,我故意保留了您的missing()错误。当这次遇到错误时,在try
和except
内,它应该立即返回:
<class 'TypeError'> Line: 23
forward() missing 1 required positional argument: 'distance'
而不是在你身上进入“没有回应”的状态。试一试,如果有帮助,请告诉我们。