python 程序引发异常
python program raising exceptions
我正在使用 python 从 Guttag Intro to computer science and programming 进行手指练习,我正在做以下手指练习:
手指练习:实现一个满足规范的函数
def findAnEven(l):
"""假设l是一个整数列表
Returns l中的第一个偶数
如果 l 不包含偶数,则引发 ValueError"""
这是我到目前为止所写的内容,它完成了工作,但绝对不是 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 语句非常粗糙。提前致谢。
您的代码的问题在于 exit()
的使用。一般return
会给你退出。要修复代码,只需将其删除:
def isEven(l):
for i in l:
if i % 2 == 0:
return i
raise ValueError("No even numbers in list!")
我正在使用 try-except 来回答这个问题:
def findEven(L):
try:
for num in L:
if num%2==0:
return num
else:
num/0
except:
raise ValueError
要进入except块,try块中需要有错误。我特意在 try 块中添加了一个零除法操作,以在没有找到偶数的情况下生成 ZeroDivisionError。此错误允许执行异常块。希望它能帮助处于相同情况的其他人。
我也在做这部分。这是我的代码:
def findEven(L):
try:
for num in L:
if num%2==0:
return num
else:
num/0
except ZeroDivisionError:
print("No even numbers in list!")
except:
raise ValueError("findEven called with bad arguments")
我发现如果不使用ZeroDivisionError
,IDLEShell会先显示ZeroDivisionError
,然后再显示这一行
During handling of the above exception, another exception occurred:
我正在使用 python 从 Guttag Intro to computer science and programming 进行手指练习,我正在做以下手指练习:
手指练习:实现一个满足规范的函数 def findAnEven(l): """假设l是一个整数列表 Returns l中的第一个偶数 如果 l 不包含偶数,则引发 ValueError"""
这是我到目前为止所写的内容,它完成了工作,但绝对不是 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 语句非常粗糙。提前致谢。
您的代码的问题在于 exit()
的使用。一般return
会给你退出。要修复代码,只需将其删除:
def isEven(l):
for i in l:
if i % 2 == 0:
return i
raise ValueError("No even numbers in list!")
我正在使用 try-except 来回答这个问题:
def findEven(L):
try:
for num in L:
if num%2==0:
return num
else:
num/0
except:
raise ValueError
要进入except块,try块中需要有错误。我特意在 try 块中添加了一个零除法操作,以在没有找到偶数的情况下生成 ZeroDivisionError。此错误允许执行异常块。希望它能帮助处于相同情况的其他人。
我也在做这部分。这是我的代码:
def findEven(L):
try:
for num in L:
if num%2==0:
return num
else:
num/0
except ZeroDivisionError:
print("No even numbers in list!")
except:
raise ValueError("findEven called with bad arguments")
我发现如果不使用ZeroDivisionError
,IDLEShell会先显示ZeroDivisionError
,然后再显示这一行
During handling of the above exception, another exception occurred: