我是编程新手,遇到了一个我似乎无法调试的错误,无论我做了什么修改。我试图编写一个函数,允许用户指定掷硬币的次数和连续掷硬币的长度。程序应该计算条纹(正面或反面)发生的次数。运行当前程序时,返回正面和反面的值均为1:
import random
def flip():
flipValue = random.randint(1,2)
if flipValue == 1:
side = "Heads"
else:
side = "Tails"
return side
def nStreak():
numFlips = int(input("Number of flips:"))
lengthStreak = int(input("Length of streak:"))
numRuns = 0
heads = 0
tails = 0
numStreakHeads = 0
numStreakTails = 0
while numRuns != numFlips:
side = flip()
numRuns += 1
if side == "Heads":
heads += 1
if heads == lengthStreak:
numStreakHeads += 1
if side == "Tails":
tails += 1
if tails == lengthStreak:
numStreakTails += 1
print("Number of heads streaks:", numStreakHeads)
print("Number of tails streaks:", numStreakTails)
首先,当你达到lendthStreak后,你不会重置你的计数器。所以,一旦heads等于lendthreak,那么以后每次都会大于lendthreak,所以你总是得到1的结果。你想在你遇到连胜之后重置这个值。你还需要重置你的计数器一旦你得到一个翻转的另一面(一旦你翻转头部,设置尾巴=0)。在
^{1}$相关问题 更多 >
编程相关推荐