gpt4 book ai didi

python - 如何通过 try/except 正确处理 KeyError 异常?

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:37 25 4
gpt4 key购买 nike

为澄清而编辑:我正在尝试做一个学校练习,要求我构建接收一个元素和一个元组的函数,如果元素在元组中,它会反向返回它的位置,即:

findInTupleA (1 , (1,2,3,1)

打印

[3, 0]

但是如果元组中不存在该元素,则应发送一个 KeyError,提示“元素不在元组中”。

def findInTupleA(elem,tuplo):
lista_indices = []
i = 0
while i < len(tuplo):
try:
if tuplo[i] == elem:
lista_indices.append(i)
i = i + 1
except KeyError:
return "element not in tuple"

if len(lista_indices)>=1:
return lista_indices[::-1]
else:
return lista_indices

它仍然没有按预期工作,因为如果我给它元素 1 和元组 (2,3) 它返回一个空列表而不是键错误,而当我问的时候,reverse() 在第二个 if 上不起作用,不知道为什么。

附言如果您想对我可以改进代码的方式发表评论,那就太棒了,对于断言部分也是如此!

最佳答案

我觉得你误解了你的任务。我认为您不需要使用 tryexcept 来捕获函数内部的异常,而是您应该自己引发异常(并可能在函数外使用 try/except 来处理它)。

尝试更多类似的东西,看看它是否满足您的需要:

def findInTupleA(elem,tuplo):
lista_indices = []
i = 0
while i < len(tuplo):
if tuplo[i] == elem:
lista_indices.append(i)
i = i + 1

if len(lista_indices) >= 1:
return lista_indices
else:
raise IndexError("element not in tuple")

关于python - 如何通过 try/except 正确处理 KeyError 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41490806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com