我们有一个游戏,游戏包含500轮。在每一轮中,两个硬币同时被滚动,如果两个硬币都有“头”,那么我们赢得1英镑,如果两个都有“尾巴”,那么我们将损失1英镑,如果我们有一个硬币显示'头'而另一个硬币显示'尾巴'或反之亦然,然后我们只是'再试一次'。
coin_one = [random.randint(0, 1) for x in range(500)]
coin_two = [random.randint(0, 1) for x in range(500)]
game = zip(coin_one, coin_two)
for a, b in game:
if a and b:
print(1)
elif not a and not b:
print(-1)
else:
print('please try again') # or continue
结果如下:
1 请再试一次 -1 请再试一次 请再试一次 请再试一次 -1 -1 1 -1 ,............,1
我试图找到结果的总和,这样我就可以知道游戏玩家在游戏完成后赢了或输了多少(500回合)。
在获得仅玩一场比赛(500轮)的结果(赢得/输掉的总金额)之后,我希望玩游戏100次来创建一些总结统计数据,例如玩这个游戏的平均值,最大值,最小值和标准差
答案 0 :(得分:2)
您可以简单地将值的总和累加到一个新变量中:
total = 0
for a, b in game:
if a and b:
total += 1
elif not a and not b:
total -= 1
else:
print('please try again')
print(total)
如果你不想打印任何东西,如果它们都有不匹配的值,你可以做一个单行:
s = sum(0 if a^b else (-1, 1)[a and b] for a, b in game)
请注意,^
是xor运算符,如果两个操作数相同,则返回 falsy 值。把它放在三元组中,我们可以通过使用and
两个操作数的短路结果索引来选择-1或1。
答案 1 :(得分:0)
正如其他人所说,total
就是您想要搜索的内容。在循环之前定义它,然后它在循环中进入/减少。
total = 0
for a, b in game:
if a and b:
total += 1
elif not a and not b:
total -= 1