我正在做"Coin flip streaks"自动化无聊内容的实践项目,但不确定我错过了什么或做错了什么


import random
numStreaks = 0
for experimentNum in range(10000):
# Code that creates a list of 100 'heads' or 'tails' values.
outcome = []

for i in range(100):

if random.randint(0,1) == 0:
outcome.append('H')
else:
outcome.append('T')
# Code that checks if there is a streak of 6 heads or tails in a row
Hstreak = 0
for i in range(len(outcome)):
for x in range(6):    
if outcome[x] == 'H':
Hstreak += 1        
if Hstreak == 6:
numStreaks += 1
else:
numStreaks = 0            
print ('Chance of streak: %s%%' % (numStreaks/100))

我在第四章的硬币翻转项目上遇到了麻烦。我不知道我错过了什么或做错了什么。我试着运行代码,但什么也没出现。我查阅了其他人对这个项目的看法,但我仍然不知道为什么我的代码不起作用。

在中

if Hstreak == 6:
numStreaks += 1
else:
numStreaks = 0

每次HStreak不为6时,都将numStreaks设置为0。

这里有很多错误。首先,在这段代码中:

for x in range(6):    
if outcome[x] == 'H':
Hstreak += 1      

你只检查过每组100次中的前6次翻转。只有当它们都是"H"时,你的numStreaks才会增加。然后,正如@Emre Sahin所说,每次Hstreak不是6时,您都会将numStreaks设置为0。最后,即使T打破了连胜纪录,你也不会在任何时候重置你的Hstreak计数器。总而言之,你需要重新思考寻找连胜背后的逻辑。

相关内容

最新更新