在下面的代码中,我在代码中重复了以下几行代码,因此尝试将它们插入到函数中,并在需要它们时调用它们,但是发生错误,我不知道为什么:
list1=[1000,2000,3000,4000,5000]
i=0
c=0.5
n=1000
def func(list1,i,c,n):
x=list1[i]/2
y=x*c
z=n-y
if z<=0:
list1.pop(i)
func(list1,i,c,n)
print('x=',x,'y=',y,'z=',z)
当我尝试执行代码时,出现错误,未定义x或y或z。
变量创建的内部函数仅在函数结束之前存在。如果您希望x
,y
并且z
可以在全局范围内使用,则需要声明您希望这种行为。您可以通过在函数的开头简单添加以下行来表明变量将是全局变量:
def func(new_x):
global x
x = new_x
func(5)
print('x=', x)
例如,这将打印5。您可以global
使用逗号一次声明多个变量,如下所示:
def func(new_x):
global x, y
x = new_x
y = new_x+1
func(5)
print(f'x={x} y={y}')
这将打印x=5 y=6
。注意我格式化字符串的方式。它称为f-string,您可以在此处阅读。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句