tryおよびexceptステートメントにいくつかの問題がありますが、文字列で入力を行うエントリウィジェットがありますが、後で整数に変換するコードがあります。ユーザーがテキストのようなものを入力すれば、それは、このようなエラーがスローされます。tryおよびexceptステートメントで代入される前にローカル変数が参照されています
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.2/tkinter/__init__.py", line 1402, in __call__
return self.func(*args)
File "/home/ppppwn3d/workspace/Python/JailBreakBob/JailBreakBob.py", line 157, in buttonclick_gamescreen
entryx = int(e1.get())
ValueError: invalid literal for int() with base 10: 'abc'
だから私は、tryとし、文以外のエラーを非表示にしたかったのですが、私は今、別のエラーメッセージが表示されます。
これはコード内のようです。
while pressed == 8 :
try:
entryx = int(e1.get())
entryy = int(e2.get())
except ValueError:
print("text")
answerx = answerlistx[randomimage]
answery = answerlisty[randomimage]
if entryx == answerx and entryy == answery
canvas.delete(images)
randomimage = random.randrange(0,49+1)
scorecounter = scorecounter + 1
game = PhotoImage(file=imagelist[randomimage])
images = canvas.create_image(30, 65, image = game, anchor = NW)
e1.delete(0, END)
e2.delete(0, END)
pressed = ''
if entryx > 10 or entryx < -10 or entryy > 10 or entryy < -10 :
wrong = canvas.create_image(30, 65, image = outside, anchor = NW)
e1.delete(0, END)
e2.delete(0, END)
pressed = ''
else:
wrong = canvas.create_image(30, 65, image = incorrect, anchor = NW)
e1.delete(0, END)
e2.delete(0, END)
pressed = ''
新しいエラーメッセージ:
text
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.2/tkinter/__init__.py", line 1402, in __call__
return self.func(*args)
File "/home/ppppwn3d/workspace/Python/JailBreakBob/JailBreakBob.py", line 165, in buttonclick_gamescreen
if entryx == answerx and entryy == answery:
UnboundLocalError: local variable 'entryx' referenced before assignment
これが起こって、どのように理解されるであろう任意の助けがそれを修正することですなぜ私は把握することはできません。
ありがとうございます。