我刚开始使用Python,遇到了问题。我正在编写一个模拟硬币翻转的功能。 当我编写一些模拟代码来测试randint函数时,它工作得很好,并返回了一个很好的随机序列的头部和尾部。我尝试在我的程序中使用的代码只返回h或t。
import random
coin_sequence = "hhththththhhhttthht"
generated_sequence = "" #define generated_sequence
length = len(coin_sequence)
flip = random.randint(0, 1)
for value in range(length):
if flip == 0:
generated_sequence = generated_sequence + "t"
else:
generated_sequence = generated_sequence + "h"
print(generated_sequence)
我可能犯了一些非常愚蠢的错误。谁能帮我?
答案 0 :(得分:2)
在循环开始之前,您只需拨打random.randint()
一次:
flip = random.randint(0, 1)
for value in range(length):
# ...
该调用返回一个整数对象。无论在最初产生什么函数,在循环中反复检查该整数都不会改变它的值。
如果您想获取新的随机数,请random.randint()
在循环中生成一个 :
for value in range(length):
flip = random.randint(0, 1)
if flip == 0:
generated_sequence = generated_sequence + "t"
else:
generated_sequence = generated_sequence + "h"
请注意,您可以使用以下内容更简洁地编写该循环:
for value in range(length):
flip = random.randint(0, 1)
generated_sequence += "t" if flip == 0 else "h"