好的,我正在做一个在python中制作二十一点游戏的项目,我遇到了一些麻烦。我的一个问题是我不知道何时将变量定义为全局变量,特别是在带有if语句的函数中。如果我在if语句之外有一个全局变量,那么我是否必须在if语句中声明变量是全局的?例如:
x = 5
def add():
global x <--- ?
x += 1
if x == 7:
global x <--- ?
x = 5
我很确定我需要第一个问号的“全球x”,但在第二个问号呢?如果我想让if语句更新全局变量,我还需要在if语句中加入“global x”吗?或者函数开头的全局x是否使if语句中的x全局?另外,如果我想在这里返回x,我应该在哪里做?
答案 0 :(得分:3)
只有一个global
语句就足够了。
来自docs:
global
语句是一个适用于整个语句的声明 当前代码块。
x = 5
def add():
global x
x += 1
if x == 7:
x = 5
另外,如果我想在这里返回x,我应该在哪里做?
如果您在函数中使用global
,那么return x
必须在global x
语句之后,如果您没有使用任何global
语句并且也没有不定义任何局部变量x
,然后您可以在函数中的任何位置return x
。
如果您已定义本地变量x
,那么return x
必须在定义之后。