硬币翻转程序打印头或尾/ python的百分比

时间:2018-05-03 18:05:16

标签: python

所以我是编码的新手,我正在尝试编写一个硬币翻转程序。它必须将硬币翻转1000次并给出头部的百分比,然后我必须将它翻转50000次并再次获得头部的百分比。这就是我现在所拥有的全部我不知道从哪里开始。

def flipCoin():
  heads=0
  for i in range(1000):
    coin=random.randint(1,2)
    if random.randint==1:
      print ("Heads")
      heads+=1
      percent=(heads/10)*100
      print (percent)
    else:
      print

4 个答案:

答案 0 :(得分:2)

以下是您要编写的代码的要点:

flip a coin
see if it's heads, add to a global counter
divide global counter by total number of tries (this is the percentage)

你要做的就是为1000次尝试和50000次尝试做。从您已经发布的代码片段中,您已经完成了翻转和计数 - 现在只需修复百分比并运行1000和50000次尝试。 :)如果您有任何问题,请告诉我。

答案 1 :(得分:2)

执行此操作的好方法是在函数中添加参数

例如,您可以使用参数num_of_flips

定义flipCoin()函数
def flipCoin(num_of_flips):
    # function body

然后,每当你调用该函数。您可以将值传递为参数。像这样:

flipCoin(100) # flip coin 100 times
flipCoin(5000) # flip coin 5000 times

这是我的完整flipCoin()函数:

def flipCoin(num_of_flips):
    heads = 0
    for i in range(num_of_flips):
        coin=random.randint(1, 2)
        if coin==1:
            heads += 1

    percent = heads / num_of_flips
    print(percent)

flipCoin(100) # flip coin 100 times
flipCoin(5000) # flip coin 5000 times

另外,你需要让你的数学正确的百分比。百分比应等于头部除以总翻转次数。这就是我在上面的代码中所做的。

答案 2 :(得分:0)

您好,欢迎来到stackoverflow。

第一件事:既然你需要多次翻转硬币,为什么不在你的功能中反映出来呢?

def flipCoin(times):
    # ...
    for i in range(times):

接下来:要做出关于头部或尾部的决定,我们需要的是一个选项,即“假的”(意味着隐式bool演员评估为False)和一个不是“false”的选项。 random.randint(0,1)只是给了我们,所以我们可以使用这个随机整数作为head的条件:

if random.randint(0,1):
    heads += 1

只需打印结果:

print('heads percentage: %05.2f' % (100 * float(heads) / times) )

答案 3 :(得分:0)

我改进了你的代码。我的python知识也不是很好,但这里是:

import random

def flipCoin():
    heads = 0 # track heads amount
    tails = 0 # track tails amount
    headspercent = 0 # heads percentage
    tailspercent = 0 # tails percentage

    for i in range(1000): # run the experiment 1000 times
      coin=random.randint(1,2) # assign a value to coin, either 1 or 2

      if coin==1: # if coin value is assigned as 1
          heads+=1 # increase heads count by 1
      else: # if coin value is assigned something other than 1
          tails+=1 # increase tails count by 1

    headspercent = heads / 10.0 # since we're rolling 1000 times, /10 will give percentage
    tailspercent = 100.0 - headspercent # no need to recalculate 100 - heads = tails %

    print("Heads percent: " + str(headspercent)) # printing the values on screen
    print("Tails percent: " + str(tailspercent)) # converting numbers to string by str()



flipCoin() # calling the function

以下是代码的输出:

Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux

Heads percent: 50.6
Tails percent: 49.4

我已经解释了哪一行在代码中做了什么。我希望这个答案可以帮助您更好地理解这个主题。

编辑:我试图让它尽可能简单,有更多高级方法可以解决这个问题。