0

---------------------------------------------- で区切られた 2 つのプログラム--------------------------------------------- ラインより上のプログラム
行の下のプログラムは program2 と呼ばれます プログラム間の唯一の違いは、 program1の
int(input()) と program2 の入力です

PS: それが何と呼ばれているかはわかりませんが、「okd」(大丈夫) と書いたテキストでは、true と書くべきでしょうか?

質問/私の考え:
program1if number:では "okd" になりますが、 number == integer and number != 0
program2では " okd if number:" になりnumber == string and number != 0
ます 。文字列であり、どちらのプログラムでも、数値が試行されたものである場合、それは「okd」になり、プログラムは?if number:numberTry:
return numberbreak

def limit(question):
    while True:
        try:
            number = int(input(question))
        except:
            number = 0
        if number:
            return number
            break

question = "type an integer expressed with digits and press enter: "
number = limit(question)
print(number)

def limit(question):
    while True:
        try:
            number = input(question)
        except:
            number = 0
        if number:
            return number
            break

question = "type an integer expressed with digits and press enter: "
number = limit(question)
print(number)
4

1 に答える 1

0

ifステートメントに与えられた式がFalse, 0, None, '',[]などである場合、ステートメントの本体は評価されません。ステートメントは、 が文字列/整数になろうとしているifかどうかを検出しようとしません。number

したがって、ユーザーが 0 を入力するnumber = int(input(question))と、正常に実行されますが、number はゼロになるため、ステートメントの本体はif評価されません。

try/の目的は、本文exceptのステートメントでエラーが発生するかどうかを確認することです。tryしたがって、ユーザーがいくつかの数字を入力するnumber = int(input(question))と、問題なく実行されます。ユーザーが整数ではないものを入力すると、number = int(input(question))が返さValueErrorれ、exceptブロックはエラーをキャッチして評価されます。

于 2013-08-05T19:19:27.167 に答える