所以我是编码的新手,我正在尝试编写一个硬币翻转程序。它必须将硬币翻转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
答案 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
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
我已经解释了哪一行在代码中做了什么。我希望这个答案可以帮助您更好地理解这个主题。
编辑:我试图让它尽可能简单,有更多高级方法可以解决这个问题。