我想总结一下下面的代码。它应该做的是检查计算中的变量是否已分配。如果不是,则结果将为零。因为我有数百个这样的计算,所以我不想重复尝试 - 除了每个计算。
我该怎么做?
a = 1
b = 2
d = 3
f = 2
try:
ab = a + b
except:
ab = 0
try:
ac = a - c
except:
ac = 0
try:
bg = b / g
except:
ac = 0
最佳答案
编写一个函数来执行此操作,使用 lambda
(单行函数)来延迟对变量的评估,以防其中一个变量不存在:
def call_with_default(func, default):
try:
return func()
except NameError: # for names that don't exist
return default
ab = call_with_default(lambda: a+b, 0)
# etc.
您可能会受益于使用某种数据结构(例如列表或字典)来包含您的值而不是将它们存储在单个变量中;然后您可以使用循环来完成所有这些计算,而不是单独编写它们。
关于Python - 总结 try-except 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16071885/