Python随机变量不起作用

时间:2016-02-07 11:19:22

标签: python

我正在创建一个基于文本的游戏,我想实施一个后果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)

2 个答案:

答案 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变量来保存随机数的原因!馊主意!