我是python的新手,想创建一个基本的硬币翻转程序,该程序将根据用户输入重复执行。 我能够为硬币翻转创建随机响应,但是当它询问是否要重复时,它不会生成新的随机响应,而是重复相同的响应。如果我输入“ y”,如何使它重新启动程序。
import random
coin = random.randint(0,1)
y = "y"
n = "n"
import sys
def coin_flip():
if coin == 0:
print("Heads")
elif coin == 1:
print("tails")
again = input("flip again?('y' or 'n') ")
if again == y:
coin_flip()
else:
again == n
print("good bye")
sys.exit()
coin_flip()
答案 0 :(得分:0)
您应该在coin_flip
函数中生成随机值。您只能在脚本开始时创建它,因此只能创建一次。
将行coin = random.randint(0,1)
移动到coin_flip
函数的开头。
答案 1 :(得分:0)
您的程序将始终为您提供相同的结果,因为您正在将coin
函数之外的值coin_flip()
变量随机化。因此,在程序开始时它只能被随机化一次。
要解决此问题,只需在coin
函数开始时将coin_flip()
变量值随机化
def coin_flip():
coin = random.randint(0,1)
# the rest of the function
答案 2 :(得分:0)
如果您在random
module中进行深入研究,您会发现一些有趣的实用程序,这些实用程序将使这些事情变得非常简短。例如
random.choice(['Heads', 'Tails']
会带给您随机的正面或反面,而没有所有额外的if/elif
逻辑。这些事情将使您的代码更易于阅读,理解和维护。例如,您可以执行以下操作:
import random
while (input("flip again?('y' or 'n') ") == 'y'):
print(random.choice(['Heads', 'Tails']))
print("good bye")