4

エントリが整数でない場合、どうすればエラーを表示できるのでしょうか。コードが特定の範囲の整数のみを受け入れるようにすることができましたが、代わりに文字が指定されている場合にエラーを表示する方法がありません。誰かが知識を流せるかどうか疑問に思っていました。ありがとう!

def get(self):
    c = int(self.a.get())
    d = int(self.b.get())
    if c>255 or c<0 or d>255 or d<0 :
        print c
        tkMessageBox.showerror("Error2", "Please enter a value between 0-255")
        self.clicked_wbbalance()
    if c<255 and c>0 and d<255 and d>0:
        print "it worked"
        pass
4

4 に答える 4

5

str.isdigit()入力が整数かどうかを確認するために使用します。

In [5]: "123".isdigit()
Out[5]: True

In [7]: "123.3".isdigit()
Out[7]: False

In [8]: "foo".isdigit()
Out[8]: False

したがって、コードは次のようになります。

def get(self):
    c = self.a.get()
    d = self.b.get()
    if c.isdigit() and d.isdigit():
        c,d=int(c),int(d)
        if c>255 or c<0 or d>255 or d<0 :
            print c
            tkMessageBox.showerror("Error2", "Please enter a value between 0-255")
            self.clicked_wbbalance()
        elif c<255 and c>0 and d<255 and d>0:
            print "it worked"
            pass
    else:
         print "input is not an integer"
于 2012-11-12T09:20:52.200 に答える
3

無効な入力がある場合は、例外をキャッチできます。

try:
    c = int(self.a.get())
    d = int(self.b.get())
except ValueError:
    # Show some sort of error message, input wasn't integers
else:
    # Input was integers, continue as normal
于 2012-11-12T09:21:15.073 に答える
0
num = 123
if isinstance(num, int):
True
于 2012-11-12T09:25:21.303 に答える
0

ええと...あなたはいつでもあなたの文字列を次のようにフォーマットすることができます:

msg = "Error. Invalid value %d. Value must be between 0-255" % c
于 2012-11-12T09:20:35.887 に答える