2016-08-04 60 views
0

即時通訊上的手指運動從Guttag介紹計算機科學和編程工作使用Python和IM在下面的手指操工作:Python程序引發異常

手指操:實現滿足規範 高清功能findAnEven (1): 「」「假定l爲 返回交運集團 第一偶數整數列表引發ValueError異常,如果L不包含偶數」「」

這是我寫的,到目前爲止,它完成工作,但絕對不是Guttag打算作爲答案的。

def isEven(l): 
     """Assumes l is a list of integars 
      returns the first even number in list 
      raises an exception if no even number in list""" 
     for i in l: 
      if i % 2 == 0: 
       print i, " is the first even number in the list"    
       exit() 
     raise ValueError("No even numbers in list!") 

我非常感謝Guttag教授打算讓代碼看起來如何的任何輸入。我假設我應該在某處使用try語句,並且在這種情況下使用exit語句非常粗糙。提前致謝。

+0

你爲什麼不直接問他? – Julien

+0

你怎麼知道它看起來不像他想要的樣子?它**做**他想要的,對吧? –

+0

不是在麻省理工學院,只是用這本書。它做他想做的事,但我覺得我應該使用try語句和某個while循環。 –

回答

1

您的代碼問題是使用exit()。一般return將退出爲您。要修復代碼,只需將其刪除:

def isEven(l): 
     for i in l: 
       if i % 2 == 0: 
         return i 
     raise ValueError("No even numbers in list!") 
+0

謝謝,我想這只是看起來馬虎。我想我應該已經使用了一個try語句和一個while循環。無論如何感謝 –

+0

不,它看起來不馬虎;只是這就是Python的外觀:) –