有没有办法让函数从同一个变量中获得两次随机数

aaf*_*afr 0 python

我正在尝试制作一个骰子,您可以询问您是否要生成一个新的随机数(这个想法来自https://knightlab.northwestern.edu/2014/06/05/five-mini-programming-projects- for-the-python-beginner/ )

第一次运行有效,但不会生成新数字,但会打印相同的数字。有没有办法做到这一点?

我的代码:

import random
number = random.randint(1,6)
def rollDie():
    print(number)
    answer = input("Do you want to roll the die again? Answer with Y or N")
    if answer == "Y":
        rollDie()
    elif answer == "N":
        print("bye!")

rollDie()
Run Code Online (Sandbox Code Playgroud)

cdl*_*ane 5

从我的角度来看,更麻烦的问题是在这种情况下使用递归。在这种情况下,我经常在初学者 Python 代码中看到它,或者作为一种错误处理机制,这是教新程序员的一种不好的模式。这应该用一个简单的循环来处理:

import random

def rollDie():
    while True:
        number = random.randint(1, 6)
        print(number)

        answer = input("Do you want to roll the die again? Answer Y or N: ")

        if answer.upper() == 'N':
            print("Bye!")
            break

rollDie()
Run Code Online (Sandbox Code Playgroud)

而不是rollDie()递归调用。