gpt4 book ai didi

python - 在迭代期间忽略 NameError

转载 作者:太空宇宙 更新时间:2023-11-03 13:40:41 25 4
gpt4 key购买 nike

我需要遍历列表并执行一些操作(比如 sum)。每当它遇到 NameError 时,它应该跳过该变量并返回剩余的结果集。

a = 1
b = 2
c = 3

try:
z = sum([a, b, c, d])
except NameError as e:
pass
else:
print(z)

我没有在这里声明 d 所以当异常被捕获时,它应该跳过 d 并计算剩余的结果。如何做到这一点?

Expected result = 6

注意:为了便于理解,我明确命名了 a、b、c、d,但在实际情况下,列表的填充方式不同。

最佳答案

当引发NameError 时,sum 函数将不会完成。这是解决该问题的一种方法。这是一种奇怪的方法,但由于您的情况特殊,它可能会有所帮助。

a = 1
b = 2
c = 3

def checkExists(variable):
return variable in locals() or variable in globals()

toCheck = []

# Check all the variables as strings to see if they exist
for var in ["a", "b", "c", "d"]:
# If they do, add them to the 'check' list
if checkExists(var):
toCheck.append(eval(var))

print(sum(toCheck))

关于python - 在迭代期间忽略 NameError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31895838/

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