如何在函数外部使用函数内部定义的变量?

时间:2014-04-27 16:51:52

标签: python function variables

这是我的功能:

def playNovice(marbles):
        import random
        rand = random.randint(1,(0.5*marbles))
        print('Computer takes: ', rand)

a = rand + rand
print(a)

我想重用变量rand。我有一种感觉:

global rand

我确实尝试过,但它不起作用,所以我认为我错误地使用了它或者它的错误。

3 个答案:

答案 0 :(得分:3)

使用return将值返回给调用者:

import random

def playNovice(marbles):
    rand = random.randint(1,(0.5*marbles))
    print('Computer takes: ', rand)
    return rand

rand = playNovice(6)
a = rand + rand
print(a)

答案 1 :(得分:0)

是的,您确实使用global rand

您还需要在playNovice(number of marbles)中添加要运行的函数。只是定义函数就像设置变量但不打印它一样。

def playNovice(marbles):
    global rand
    import random
    rand = random.randint(1,(0.5*marbles))
    print('Computer takes: ', rand)

playNovice(num)
a = rand + rand
print(a)

上述情况应该有效。

正如旁注,最好将所有全局声明放在函数的开头,以便在调试时更容易阅读。

答案 2 :(得分:0)

可以使用global rand,但这不是理想的方法。 (我同意返回值是解决此问题的更好方法)。这是在这种情况下如何使用global rand的示例。

当你这样做时

a = rand + rand

您正在引用尚未声明的rand

显示使用rand修改global rand的示例如下所示:

def playNovice(marbles):
        global rand
        import random
        rand = random.randint(1,(0.5*marbles))
        print('Computer takes: ', rand)

rand = 10
print(rand)
playNovice(2)
print(rand)

结果如下:

10
('Computer takes: ', 1)
1