我正在试着做一个骰子,你可以问你是否想要生成一个新的随机数(这个想法来自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()
代码的问题是
number
只定义了一次number
是一个整数,整数是不可变的,因此除非重新定义变量,否则其值永远不会更改为了完成掷骰子模拟,请将
number = random.randint(1,6)
从代码顶部重新定位到函数内部:发件人:
致:
从我的角度来看,更麻烦的问题是在此上下文中使用递归。在这种情况下,我经常在初级Python代码中看到它,或者将其视为一种错误处理机制,而教授新程序员是一种糟糕的模式。这应该通过一个简单的循环来处理:
而不是再次递归调用
rollDie()
相关问题 更多 >
编程相关推荐