3 回答

TA贡献1829条经验 获得超9个赞
您的函数调用中有太多的箔条。使用字典:
def game(action1, action2):
payoffs = {
('a', 'a'): (1, 1), ('a', 'b'): (-5, 3),
('b', 'a'): (3, -5), ('b', 'b'): (2, 2)
}
return payoffs.get((action1, action2), (0, 0))

TA贡献1830条经验 获得超9个赞
您应该将两个收益都初始化为某个东西,因为如果您的行为不属于特定情况,您最终什么也不会返回。因此,添加一个默认值 else 以便您的函数返回默认收益,以下代码应该可以帮助您解决问题。
def game(action1,action2):
if action1 == "a" and action2 == "a":
payoff1 = 1
payoff2 = 1
elif action1 == "a" and action2 == "b":
payoff1 = -5
payoff2 = 3
elif action1 == "b" and action2 == "a":
payoff1 = 3
payoff2 = -5
elif action1 == "b" and action2 == "b":
payoff1 = 2
payoff2 = 2
else:
payoff1= 0
payoff2=0
return payoff1 , payoff2
从技术上讲,这应该可以防止您出现该参考错误。
添加回答
举报