首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中生成结果和

在python中生成结果和
EN

Stack Overflow用户
提问于 2017-02-04 13:20:45
回答 2查看 102关注 0票数 0

我们有一场比赛,比赛有500回合。在每一轮中,两枚硬币同时滚动,如果两枚硬币都有“正面”,那么我们就赢得了“国标1”;如果两枚硬币都有“反面”,那么我们就输掉了“国标1”;如果我们遇到这样的情况,一枚硬币显示“正面”,另一枚硬币显示“反面”,反之亦然,我们只是“再试一次”。

代码语言:javascript
复制
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次游戏,以创建一些统计数字,如游戏的平均值、最大值、最小值和标准差。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-04 13:48:38

您可以简单地将值的总和累加到一个新变量中:

代码语言:javascript
复制
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)

如果您不想打印任何内容,如果它们都有不匹配的值,则可以执行一行操作:

代码语言:javascript
复制
s = sum(0 if a^b else (-1, 1)[a and b] for a, b in game)

注意,^是xor操作符,如果两个操作数是相同的,则返回一个falsy值。把它放在三元中,我们可以选择-1或1,方法是用and和两个操作数对结果进行索引。

票数 2
EN

Stack Overflow用户

发布于 2017-02-04 13:49:13

正如其他人所建议的那样,total是您所要寻找的东西。在循环之前定义它,然后它在循环中进入/递减。

代码语言:javascript
复制
total = 0
for a, b in game:
    if a and b:
        total += 1
    elif not a and not b:
        total -= 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42040864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档