首先我们要理解定义一个函数,这个函数是干什么用的。定义一个函数,就是造了一个工人,形参就是材料,执行代码就是告诉这个工人怎么把材料拼起来。比如
def worker(a,b,c): x=a+b y=x*c return y
写到这一步,我就让test这个工人利用a,b,c三种材料给我创建了两个成品x和y,但是程序里的装配和工厂不同,用过的材料不会消失。这样,这个工人手里就有了a b c x y五样物品。他怎么知道你要的是哪个呢?
,那我在这里return y,就是告诉工人我要的是什么东西,当我调用worker的时候,你要把y交给我。
问题1:如果一个函数没有返回值,意思就是工人什么都没有交给你。不过没关系,工人可能已经 1.把原始的材料改造过了,比如给某个手机壳上雕了一朵花(对某个全局变量a执行了a++的操作); 2.做了一些制造产品以外的事情,比如写了工作日志(print一些东西到console)或者倒计时10秒钟(time.sleep(10))或者寄了一个快递出去(网络和IO操作)之类的。
问题2:print 可以理解成将返回成品 y 拿出来买,return 是将成品返回到内存(仓库)中,想要拿出来卖需要为成品包装,所以要给成品一个盒子(变量)。比如 P = worker( 1,2,3 ),将 y 包装进 p 这个盒子,然后放到屏幕上。
一定要注意:利用函数计算出结果和为函数本身赋值可以理解为两个概念。输入1和2然后print只是输入数值,利用函数这个工具进行计算后输出计算的结果。这个过程中函数本身是没变化的,这是与return最典型的区别。