2013-08-05 33 views
0

两个程序分开-------------------------------------- -------------------------------------------------- --- 线以上的程序被称为程序1
行下面的程序被称为程序2
方案之间的唯一differens是INT在程序2(输入())在程序1和输入尝试,除了和输入

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

的问题/我的思路:
在程序1 if number:将“OKD”当number == integer and number != 0
在程序2 if number:将“OKD”当number == string and number != 0
是否if number:检查,如果number就是它试图在Try:
例如在program1中,它试图成为一个整数,在program2中它试图成为一个字符串,并且在任何一个程序中,如果数字是它试图成为的那么它将是“okd”,并且程序将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) 

回答

0

如果给它表达的是False,0,None''[]if语句不会尝试检测if语句的身体会不会被评估如果number正试图成为一个字符串/ int。

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

try/except的用途是检查try正文中的语句是否会遇到错误。所以如果用户输入一些数字,那么number = int(input(question))将运行没有任何问题。如果用户输入的东西是不是一个整数,然后number = int(input(question))会给你一个ValueErrorexcept块将捕获错误并进行评估。

+0

这是否意味着当程序2的用户键入一个字符串并按回车时,变量号将变为True,并且if语句的主体将被评估? –

+0

'number'变量将是一个字符串(您输入的值)。如果该字符串为空:'''',则不会评估表达式的主体。否则,它将被评估。 – jh314

+0

评估是否意味着程序将执行“返回号码”和“中断”或者只是考虑它? (在这个特殊情况下) –