掷硬币问题的Python代码

2024-06-01 10:12:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个程序,它模拟了100次抛硬币,并给出了抛硬币的总数。问题是我还想打印正面和反面的总数。

这是我的代码:

import random
tries = 0
while tries < 100:
    tries += 1
    coin = random.randint(1, 2)
    if coin == 1:
        print('Heads')
    if coin == 2:
        print ('Tails')
total = tries
print(total)

我绞尽脑汁想办法,但到目前为止什么都没有。除了投球的总数外,还有没有办法印出正面和反面的数目?


Tags: 代码import程序if硬币randomtotalcoin
3条回答
import random

samples = [ random.randint(1, 2) for i in range(100) ]
heads = samples.count(1)
tails = samples.count(2)

for s in samples:
    msg = 'Heads' if s==1 else 'Tails'
    print msg

print "Heads count=%d, Tails count=%d" % (heads, tails)

您有一个尝试次数的变量,它允许您在结尾处打印,所以只需对头和尾的次数使用相同的方法。在循环外创建一个headstails变量,在相关的if coin == X块内递增,然后在最后打印结果。

import random

total_heads = 0
total_tails = 0
count = 0


while count < 100:

    coin = random.randint(1, 2)

    if coin == 1:
        print("Heads!\n")
        total_heads += 1
        count += 1

    elif coin == 2:
        print("Tails!\n")
        total_tails += 1
        count += 1

print("\nOkay, you flipped heads", total_heads, "times ")
print("\nand you flipped tails", total_tails, "times ")

相关问题 更多 >