我们有一场比赛,比赛有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
我试图找出结果的总和,这样我就可以知道游戏玩家在游戏完成后(500轮)赢了或输了多少。
在获得了只玩一局(500轮)的结果(输赢总数)后,我希望能玩100次游戏,以创建一些统计数字,如游戏的平均值、最大值、最小值和标准差。
发布于 2017-02-04 13:48:38
您可以简单地将值的总和累加到一个新变量中:
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值。把它放在三元中,我们可以选择-1或1,方法是用and和两个操作数对结果进行索引。
发布于 2017-02-04 13:49:13
正如其他人所建议的那样,total是您所要寻找的东西。在循环之前定义它,然后它在循环中进入/递减。
total = 0
for a, b in game:
if a and b:
total += 1
elif not a and not b:
total -= 1https://stackoverflow.com/questions/42040864
复制相似问题