Python语法混乱

2024-04-19 18:18:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在自学python,并编写一些脚本来更好地理解某些东西。我想知道为什么它返回0而不是27。如果这是java,我相信它会返回27(我初始化了一个变量,然后调用了一个函数来更改变量)。怎么回事?你知道吗

result = 0;

def cube(x):
    result = x * x * x

cube(3)

print(result)

Tags: 函数脚本defjavaresultprintcube自学
3条回答

由于范围的原因,结果是不变的。这是正确的方法。你知道吗

result = 0 # redundant

def cube(x):
    return x * x * x

result = cube(3)

print(result)

# expect 27 here

你要找的是:

def cube(x):
    result=x*x*x
    print(result)

如果你输入cube(3),你会得到27。首先定义函数将要执行的操作,然后用户可以调用它。如果要存储变量,请以return result结束,然后可以执行以下操作:

def cube(x):
    result=x*x*x
    return result

res=cube(3)

然后,res将被存储为int等于27。你知道吗

另外,return语句中未指定的变量将始终是本地变量,因此您将无法恢复它们。另外,如上所述,您不必初始化变量。你知道吗

您的result变量在函数cube外部定义为全局变量,在函数cube内部定义为局部变量,与全局变量完全不同。你知道吗

可以使用global语句将变量声明为全局变量,以便函数更新全局变量:

def cube(x):
    global result
    result = x * x * x

但是全局变量应该谨慎使用;更喜欢返回值的函数。你知道吗

相关问题 更多 >