试. .Except是错误的



我正在研究一个测试函数的函数,我发现y尝试除了是错误的…事实上,当我试图测试一个排序函数(一个选择),它返回我,索引超出范围,这不是情况下,当我尝试函数独立与相同的列表…

代码如下:

def verifyList(L: list) -> bool:
for elm in range(len(L)):
if L[elm] > L[elm + 1]:
return False
#
return True
def tri_selection(L: list) -> list:
"""
Recupere un element et l'échange avec le un plus grand
"""
assert type(L) == list

for i in range(len(L)):
for j in range(len(L)):
if L[i] <= L[j]:
L[j], L[i] = L[i], L[j]
#
#
#
return L

不需要编写的其他函数…

def __test__(L: list) -> str:
assert type(L) == list
functionsToTry = [tri_selection]
for function in functionsToTry:
try:
if verifyList(function(L)) == True:
print('[✓] ' + str(function.__name__) + ' : worked successfuly')
else:
print('[≃] ' + str(function.__name__) + ' : do not worked successfuly')
continue
except Exception as error:
print('[✕] ' + str(function.__name__) + ' : ' + str(error))
else:
print(function(L))
__test__([3, 2, 1])

如果你有什么主意,我很乐意知道,

Thx

if L[elm] > L[elm + 1]:给出了elm == len(L) - 1时列表索引超出范围的错误。最简单的修复方法是将verifyList更改为:

def verifyList(L: list) -> bool:
return L == sorted(L)

通过这个修改,你的函数通过了测试。

最新更新