2024-04-19 18:18:43 发布
网友
我正在自学python,并编写一些脚本来更好地理解某些东西。我想知道为什么它返回0而不是27。如果这是java,我相信它会返回27(我初始化了一个变量,然后调用了一个函数来更改变量)。怎么回事?你知道吗
result = 0; def cube(x): result = x * x * x cube(3) print(result)
由于范围的原因,结果是不变的。这是正确的方法。你知道吗
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结束,然后可以执行以下操作:
cube(3)
27
return result
def cube(x): result=x*x*x return result res=cube(3)
然后,res将被存储为int等于27。你知道吗
res
int
另外,return语句中未指定的变量将始终是本地变量,因此您将无法恢复它们。另外,如上所述,您不必初始化变量。你知道吗
return
您的result变量在函数cube外部定义为全局变量,在函数cube内部定义为局部变量,与全局变量完全不同。你知道吗
result
cube
可以使用global语句将变量声明为全局变量,以便函数更新全局变量:
global
def cube(x): global result result = x * x * x
但是全局变量应该谨慎使用;更喜欢返回值的函数。你知道吗
由于范围的原因,结果是不变的。这是正确的方法。你知道吗
你要找的是:
如果你输入
cube(3)
,你会得到27
。首先定义函数将要执行的操作,然后用户可以调用它。如果要存储变量,请以return result
结束,然后可以执行以下操作:然后,
res
将被存储为int
等于27。你知道吗另外,
return
语句中未指定的变量将始终是本地变量,因此您将无法恢复它们。另外,如上所述,您不必初始化变量。你知道吗您的
result
变量在函数cube
外部定义为全局变量,在函数cube
内部定义为局部变量,与全局变量完全不同。你知道吗可以使用
global
语句将变量声明为全局变量,以便函数更新全局变量:但是全局变量应该谨慎使用;更喜欢返回值的函数。你知道吗
相关问题 更多 >
编程相关推荐