for循环应该返回一个包含10个值的列表.它返回一个包含随机数项的列表



我正在做自动处理无聊事情课程中的抛硬币挑战。我必须计算连续出现6次正面或6次反面的概率,总共出现100次。

所以,第一步是生成一个列表,每个项目被分配为H或T,所以在第二步中我们可以在列表中搜索6条条纹。当我开始使用python和编码时,当我遇到挑战时,我喜欢做一个练习运行。写一个小程序,使用我知道我将需要制作最终程序的概念。

import random
Heads=0
Tails=0

exper=[]
for i in range(10):
if random.randint(0, 1)==0:
exper.append('H')
Heads=Heads + 1
if random.randint(0, 1)==1:
exper.append('T')
Tails = Tails + 1


print (exper)
print (Heads)
print(Tails)

期望输出的一个例子是类似于

['H','T','H','T','H','T','H','T','H','T']
我不知道我做错了什么,但它应该正常工作。我的输出是一个包含T ' s和H ' s的列表,但列表的长度是随机的…有时是2项,有时是10项,甚至14项。 提前谢谢你,我希望我已经解释得很清楚了。第一个问题

在循环的每次迭代中调用random.randint两次。每个都可能产生1或0。考虑一下如果第一次调用random.randint产生0而下一次调用1会发生什么。这将导致在循环的同一迭代中将HT同时添加到列表中。相反的情况也可能发生,导致没有附加值。

因此,在循环的每次迭代中,可以添加0、1或2个值。因为如果它不是正面,它一定是反面,一个选项将是添加一个else而不是另一个调用random.randint

import random
Heads=0
Tails=0
exper=[]
for i in range(10):
if random.randint(0, 1)==0:
exper.append('H')
Heads=Heads + 1
else: # if it's not heads, it must be tails
exper.append('T')
Tails = Tails + 1


print (exper)
print (Heads)
print(Tails)

应该一致地产生10个值:

['T', 'T', 'T', 'H', 'H', 'H', 'T', 'H', 'T', 'H']
5
5

相关内容

最新更新