0

さまざまなユーザー入力変数が整数であることを確認する関数が必要です。結果は最後にユーザーに確認する必要があります。チェックは、整数が入力されるまでループし続けるという点で機能しますが、表示する結果を取得できません...

def chkint(msg):
    while True:
        try:
            n = input(msg)
            return(int(n))
        except ValueError:
            print("Please enter an actual integer.")


number1 = input (chkint("Please enter first value:"))

number2 = input (chkint("Please enter second value:"))

results = (number1, number2)

print ("I have accepted: " + str (results))
4

2 に答える 2

0

答えがないので、これで遊んだだけで、ちょっとプレスト、うまくいきます...

def chkint(msg):
    while 1:
        try:
            n = input(msg)
            return(int(n))
        except ValueError:
            print("Please enter an integer.")

number1 = chkint("Please enter first value:")

number2 = chkint("Please enter second value:")

results = [number1, number2]

print ("I have accepted: " + str (results))
于 2013-07-31T18:11:28.877 に答える
0

ブロックにキャストすることint()は、数値を確認する良い方法です。try:最初の試みでは、メッセージがさらに入力に依存する入力を求めていました。

間違いの簡略版:

def getMessage():
    return input()   # this asks the user what to ask the user for

input(getMessage())  # this waits for getmessage to finish before asking the user

input()あなたがしたように、ステートメントを削除するのが最も簡単な修正でした。
しかし、より読みやすい修正はchkint(msg)、次のように、文字列が数値であるかどうかに基づいて true または false を返すだけにすることです。

def chkint(msg):   # returns true if the string can be converted, false otherwise
    try:
        int(msg)
    except ValueError:
        return False
    return True
于 2013-08-01T18:56:09.453 に答える