我有以下定义:
def heat( number ):
if number == "r":
h = 12
elif number == "b":
h = 24
return h
但是,我想使其看起来更好,而不必对if语句进行答复.有人告诉我可以按以下方式进行操作(我希望以此方式进行操作,因此,如果我仅能在此特定示例上获得帮助,则可以这样做):
def heat(number):
m = { "r" : 12,
"b" : 24 }
try:
return m[number]
except KeyError:
return 0.0
但是我不明白该如何返回“ h”的值,这就是我想要的.有人可以向我解释这种方法吗?我也感到困惑,地图和字典等.在此先感谢.
更新
好的,我得到了上面的示例,但是如果我对该函数有两个输入怎么办?
例如
def heat( temp, coeff )
我写的回报:
return m(heat, coeff)
还是这行不通?
解决方法:
您还可以使用一条语句(如果您只有以下限制选项):
def heat(number):
return 12 if number == "r" else (24 if number == "b" else 0.0)
但是,如果您需要两个以上的替代方案,那么建议的字典会更好.
您还可以避免出现以下异常:
def heat(number):
m = { "r" : 12,
"b" : 24 }
return m[number] if number in m else 0.0