尝试,除了和输入

时间:2013-08-05 19:08:07

标签: python-3.x

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

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

问题/我的思路:
if number:时,program1 number == integer and number != 0将“okd” 在if number:时,program2 number == string and number != 0将“okd” 是if number:检查number是否是Try:中的return number 例如,在program1中,它试图成为一个整数,并且在program2中它试图成为一个字符串,如果数字是它试图成为的那个,那么它将是“okd”,程序将break和{{1 }}?

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)

1 个答案:

答案 0 :(得分:0)

如果给出的if,0,FalseNone''的表达式,[]语句的正文将不会被评估,等if语句不会尝试检测number是否尝试成为字符串/ int。

因此,如果用户输入0,那么number = int(input(question))将运行得很好,但数字将为零,因此if语句的主体将不会被评估。

try / except的目的是检查try正文中的语句是否会出错。因此,如果用户输入了一些数字,那么number = int(input(question))将运行没有任何问题。如果用户输入的内容不是整数,那么number = int(input(question))将为您提供ValueErrorexcept块将捕获错误并进行评估。