2016-08-04 108 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的外观:) –