Python入门疑问:return返回值的作用与函数调用无输出的异常问题
你可以把函数理解成一个帮你干活的工具人,print和return的本质区别是:
print是工具人干完活之后直接把结果喊出来给你听,你听完就没了,没法拿着这个结果干别的事return是工具人干完活之后把结果塞到你手里,你要是想知道结果是什么,得自己看手里的东西,或者自己主动把它念出来(也就是主动调用print)
拿你的代码举例,当你把函数改成用return的版本时,代码逻辑是这样的:
def your_salary(a, b): salary = a * b return salary # 这里你只是调用了函数,相当于让工具人算完工资把结果递给你,但你接都不接,也不问他算出来多少,自然不会有任何输出 your_salary(40, 12)
想要拿到return送出来的结果,有两种常用方式:
- 用变量接住返回的结果,后续还能复用这个值做其他计算
my_pay = your_salary(40, 12) # 想要看到结果就主动打印 print(my_pay) # 输出 480 # 还能接着用这个值做其他运算,比如计算扣税后的收入 tax = 0.1 * my_pay final_pay = my_pay - tax print(final_pay) # 输出 432
- 直接把函数调用的结果当成值来使用,比如直接打印
print(your_salary(40, 12)) # 直接输出 480
你之前的误区是把「返回值」等同于「输出到屏幕」,其实二者完全是两回事:输出到屏幕只是print的专属功能,return的作用是把函数内部的计算结果送出来给调用它的代码使用,不是直接显示在屏幕上。
如果不用return的话,salary是函数内部的私有变量,函数外部的代码根本访问不到它的值,return就是专门帮你把内部计算结果送出来的通道。
内容的提问来源于stack exchange,提问作者Luke91
相关产品推荐
相关产品推荐

