2013-08-05 123 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

評估是否意味着程序將執行「返回號碼」和「中斷」或者只是考慮它? (在這個特殊情況下) –