python函数的问题

s=10
def func() :
s=100
S=S+20
return s
func ()
print (s)
请问结果为什么是10不是120

没理解错的话你的代码如下:

s=10
def func() :
     s=100
     s=s+20
     return s
func()
print (s)

代码中,func()函数内部有一个变量s,但是这个变量与函数外部的变量s没有任何关系,它们是两个不同的变量。在函数内部赋值的S是一个本地变量,它不会影响外部的变量s的值。
因此,在func()函数内部对s的操作只会影响到本地变量s的值,它们不会影响函数外部的变量s的值,所以当你调用func()函数并打印S的值时,输出结果仍然是10。

稍微改动一下, 看看理解了不 , 如有帮助给个采纳谢谢


s = 10  # 全局变量s赋值为10

def func():
    s = 100  # 在函数内部创建了一个新的局部变量s并赋值为100
    S = s + 20  # 使用局部变量s进行加法运算,赋值给局部变量S
    return S  # 返回局部变量S的值

result = func()  # 调用函数func,并将返回值保存在result变量中
print(result)  # 打印result的值,结果为120
print(s)  # 打印全局变量s的值,结果为10

首先s和S是两个不同的变量。
其次,你这个s有方法内的,和方法外的。
生效区域不一样,方法内的只有在调用方法的时候才生效。
所以你直接print(s)
只跟第一行的s=10有关系
所以答案就是10
如果你print(func())的话,答案就是100