python中形参与局部、全局变量的关系有些搞不明白?

x = 2
def fun1():
    print(x,end = '\t')
def fun2():
    global x
    x += 1
    print(x,end = '\t')
fun1()
fun2()
print(x,end = '')

此处为全局变量

def addone(a): # a为形参
    a += 1
    print(a)
a = 3          
addone(a)      
print(a)

此处为形参

这两段代码差不多,但是如果将global注释掉,第一段代码就会报错,有大佬讲一下吗

形参就是局部变量,但局部变量不一定是形参,在函数内部定义的变量(包括形参)就是局部变量;

global关键字定义的变量就是全局变量,可以共享数据。

global关键字的意思是引用上一层的变量,如果你注释global就变成了一个单独的x,global的中文释义是全局、全球(反恐精英:全球攻势CSGO英文名里的G就是Global),这个问题和形不形参无关

题主的问题和形参没啥关系,重点在于函数fun1可以不用global而函数fun2则不用不行。在函数体内,如果没有没有改变全局变量,则不需要使用global声明,如果有改变全局变量的操作,则必须要在引用之前使用global声明。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632