0

由 ---------------------------------------------- 分隔的两个程序--------------------------------------------- 行上面的程序称为 program1
行下面的程序称为 program2
程序之间的唯一区别是 program1 中的 int(input()) 和 program2 中的 input

PS:我不知道它叫什么,但在我写“okd”(好的)的文本中,也许我应该写成真的?

问题/我的思路:
在 program1if number:中将是“okd”,number == integer and number != 0
在 program2if number:中将是“okd”,当检查是否number == string and number != 0
是它试图在其中时, 例如在 program1 中它试图成为一个整数,而在 program2 中它试图是一个字符串,并且在任一程序中,如果数字是它试图成为的数字,它将是“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

如果给定的表达式是, 0, , ,等,if则不会评估语句的主体。该语句不会尝试检测是否尝试成为字符串/整数。FalseNone''[]ifnumber

因此,如果用户输入 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 回答