fengjianyx 发表于 2022-3-17 21:48:52

新人每日一问,关于函数

不太理解函数体内的 return是什么作用:
如下,应该怎么输出值?

在IDLE可以运行出来,
新建py文件就运行不出来结果

def ds(x):
    return 2*x+1
ds(5)

改成
def ds(x):
    print(2*x+1)

ds(5)
正常了 结果为11


问:此处的return到底什么作用。为什么在IDLE可以运行出来结果11

lightninng 发表于 2022-3-17 21:57:44

return就是把你的函数运行的结果返回给调用函数的地方,比如你的第一段代码,并非函数没有正常运行,只不过在这段代码中
ds(5)的值就是11
你可以试着把代码改成这样def ds(x):
    return 2*x+1
a=ds(5)
print(a)
你会发现一样能在控制台打印出11,但是原代码只是调用了ds函数,并没有对ds函数返回的结果做操作,所以看起来有点像是函数没有正常工作。

qq1151985918 发表于 2022-3-17 22:14:59

return就是返回的意思,函数内部的值或者说数据,都不是全局变量,而是局部数据,但是如果我们又需要用经过函数处理后的数据怎么办?这时候就需要用return,将经过函数处理后的结果通过return返回到函数本身,这样就可以把局部数据用于全局。可能你又会疑问为什么不用全局变量,全局变量是唯一的,如果在多个地方需要多个数据那么就会出现问题,而函数返回的值就不同了,是独立的,互不干扰。至于你说的在idle可以显示结果,那是交互模式为了能够看得清楚,实际上不经过print的数据都是看不到的,就好像你口袋里有100块钱,这100块钱一直有,但是print就是把钱拿出来展示给大家看,如果没有print就看不到,而交互模式就是x光,你可以理解为上帝模式,它啥都知道

wp231957 发表于 2022-3-17 22:15:08

好好研究研究函数是一个什么鬼,就会知道return有多重要

Python初学者8号 发表于 2022-3-18 11:21:43

就是说,你领导派你去做事,他做完没做完,完成结果如何,你觉得是应该你主动汇报好还是坐等领导call你好?

wiselin 发表于 2022-3-28 16:04:47

你把return理解为“代表”或者是“代替”吧
页: [1]
查看完整版本: 新人每日一问,关于函数