return python问题

S=5 def f(x):
global s
S=S+X return s
a=10
print(f(a))
为什么是15

  您的代码中的s,大小写字母都有。🧐应该全是小写吧。
您的 s = s + x = 5 + a = 5 + 10,当然就是15咯。

  您的代码有些小问题,全局变量不要轻易设置,除非您明白自己在做什么,因为很容易造成变量作用域混乱。在本例您的代码中,s是已经在函数体内声明是全局变量,函数内部修改的s就是外面的全局变量s,用不用return s 语句都一样。

@ada 请回答下这个问题

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你看下这篇博客吧, 应该有用👉 :python 内嵌函数中,return调用函数的区别
  • 除此之外, 这篇博客: PyThon最详细入门语法笔记中的 6.1 引用全局变量 global s 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    如果全局变量没有跟局部变量重名,那么可以在函数体内直接引用全局变量的值(即全局变量做右值);
    在这里插入图片描述
    如果全局变量跟局部变量重名,但是没有显示引用全局变量,那么在函数体内局部变量覆盖全局变量的作用域。
    在这里插入图片描述
    如果想要在函数体内修改全局变量s的值,必须先引用global s,再修改。
    在这里插入图片描述

  • 您还可以看一下 王大鹏老师的Python初级入门精讲课程中的 return语句小节, 巩固相关知识点

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