这是我的功能:
def playNovice(marbles):
import random
rand = random.randint(1,(0.5*marbles))
print('Computer takes: ', rand)
a = rand + rand
print(a)
我想重用变量rand。我有一种感觉:
global rand
我确实尝试过,但它不起作用,所以我认为我错误地使用了它或者它的错误。
答案 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