关于#python#的问题:关于局部和全局变量的两个代码十分相似但是输出的结果不同

两个代码十分相似但是输出的结果不同,能不能详细描述一下两个代码运行的过程,并且再说明一下局部和

def proc(x):
    x = 2*x*x

def main():
    x = 10
    x = proc(x)
    print(x)

main()

def proc(x):
    x = 2*x*x

def main():
    num = 10
    proc(num)
    print(num)

main()

def proc(x):
    return 2*x*x

def main():
    x = 10
    proc(x)
    print(x)

main()

望采纳,谢谢!

1、第一段代码

def proc(x):
    x = 2*x*x
    # 此处没有使用return返回值
    # return x  # 如果返回值,那么就是200
 
def main():
    x = 10      # x变量相对于main方法是全局变量
    x = proc(x) # 函数没有返回值,那么x=None
    print(x)
 
main()

第二段代码

def proc(x):
    # 这里的x变量相当于入参,相对函数内的全局变量,函数外的局部变量
    x = 2*x*x
 
def main():
    num = 10
    proc(num)   # 没有做任何操作,只是传递一个值给方法,方法里只是对内部变量进行赋值
    print(num)  # 直接输出num变量
 
main()

第三段代码

def proc(x):
    # 虽然有返回值了,但是返回没有对变量进行赋值
    return 2*x*x
 
def main():
    x = 10
    proc(x)     # 只是传递了一个参数,没有进行返回值进行赋值
    print(x)    # 直接输出变量,x=10
 
main()

如果函数返回值并赋值x,那么x=200

img

img

img

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^