2016-11-25 48 views
0

Windows 10、PyScripter 2.6、Python 3.4.4を使用しています。Python(PyScripter)エラーが発生したプログラムを実行しているときに「応答しない」ウィンドウを表示しない

私はプログラミングが初めてです。私はPythonを学んでいて、タートルモジュールでプログラムを作成しています。

タートルモジュールはウィンドウを作成し、ウィンドウのキャンバスに描画するように指示するものをカメに描画します。

私のカメプログラムにエラーがある場合、タートルウィンドウは「応答しない」状態になります。それはクラッシュします。私はそれを閉じる必要があり、それはマイクロソフトにエラー報告を送信し、などなど

私の質問はで、いくつかのコードまたはクラッシュとに入るから「亀ウィンドウ」を防ぐために、いくつかの方法があります「応答していない」状態?

私はデバッグと構文チェックを試みましたが、問題を防ぐことはできません。

私の一部は、これがちょうど方法であると私に伝えます。あなたが悪いコードを書いた場合、あなたのプログラムはクラッシュするでしょうが、開発環境では、これらのことに "対処する"方法があるようです。

おかげ ティム

コードとエラーメッセージ

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() 

ERROR

メッセージファイル名ライン位置
トラceback
C:\ PY \ 3 \ program1.py 41
はTypeError:前方(1つの)必要な位置引数が不足して:あなたのコードの '距離'

+0

コードとエラーメッセージをご記入ください。 – Sachith

答えて

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() 

私は故意に間違った()エラーを残しています。

<class 'TypeError'> Line: 23 
forward() missing 1 required positional argument: 'distance' 

ではなく、あなたの「応答していない」状態になる:それはエラーにこの時間に達すると、tryexcept以内に、それがうまくいけば、すぐに返す必要があります。試してみてください、もし助けてくれたら教えてください。

+0

ありがとうございました。うん。私は、PyScripterで、ウィンドウがハングしている場合、コードをデバッグし修正することができ、PyScripterでコードを再実行することができます。 PyScripterは応答していないウィンドウを閉じてプログラムを再実行します。私が正しくデバッグしたら、それは成功するでしょう。これらのチュートリアルをすべて実行すると、応答していない状態になるのではなく、エラーが発生したときにプログラムを閉じる方法を探していたようです。 – user2851

関連する問題