我正在创建一个基于文本的游戏,我想实施一个后果4'荒地'系统。我认为保持一切随机的一个好方法是为每个出现的数字做一个random.randint(1,10)
函数和一些if语句。问题是当我随机化变量时,数字保持不变。这是我的代码(这是我的程序的测试样本,我认为我不需要全部代码):
import random
def randomA():
return random.randrange(1,5)
global rollA
rollA = randomA()
alive = True
while alive == True:
p = input("Type w")
rollA
if p == "w":
print(rollA)
答案 0 :(得分:1)
rollA
是一个简单变量,从randomA()
函数中分配值返回。 rollA
不是一个可调用的函数,如果这是你期望的那样,它会返回一个新的随机数。
由于此rollA
永远不会分配其他值,因此rollA
的值不会更改。
我认为您的意思是通过调用rollA
重新分配到您的循环中的randomA()
:
while alive == True:
p = input("Type w")
rollA = randomA()
if p == "w":
print(rollA)
其他一些事情:
rollA
不需要是全局变量,因为它永远不会被访问
在当地范围内。而不是while alive == True:
你可以更简单地写
while alive:
...
您不会在此处显示,但可以选择设置alive = False
在你的循环体?如果没有,你就会有无限循环。
答案 1 :(得分:1)
Python模块工作正常。你的实现是错误的。你应该真正阅读这些文件。但这是一个例子:
from random import randint
randomA = lambda x: randint(1, x)
while True:
num = randomA(10)
if num != 4:
print(num)
else:
break
显示器:
6
6
2
6
8
5
此外,您的代码不是根据Python最佳实践惯例(也称为Python)编写的。 PEP-8。请考虑遵循惯例,这将有所帮助!
最后,我不明白您使用global
变量来保存随机数的原因!馊主意!