鱼C论坛

 找回密码
 立即注册
查看: 2425|回复: 8

python中print和return的区别

[复制链接]
发表于 2019-11-16 15:04:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
x=1
y=2
def add(x,y):
    z=x+y
    print(z)
print(add(x,y))

求助各位大佬,上述代码结果为什么是3和none?而不是3呢?调用add(x,y)执行结果是3,加了print为什么又多出一个none?

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-11-16 15:07:52 | 显示全部楼层
print打印的是函数的返回值,你的函数没有return语句,返回值就是None
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 15:08:36 | 显示全部楼层
本帖最后由 jackz007 于 2019-11-16 15:12 编辑

    因为函数 add() 没有返回值。

    这么改就没有 None 了。
  1. def add(x , y):
  2.     return x + y
  3. x , y = 1 , 2
  4. print(add(x , y))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 15:14:55 From FishC Mobile | 显示全部楼层
你的标题说明了一切,这是return与print的区别。你如果单独调用add函数,这时会执行函数内的print语句,打印z的值。但如果对add函数进行传值调用,即用变量接收add的值或者将add函数做为其它函数的参数值,此时因add函数没有return语句只会返回空值,所以add函数只能传出去一个None
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-16 16:25:31 | 显示全部楼层
倒戈卸甲 发表于 2019-11-16 15:14
你的标题说明了一切,这是return与print的区别。你如果单独调用add函数,这时会执行函数内的print语句,打 ...

我主要想知道为什么输出结果还有个3?print如果打印的是add函数的返回值,那不应该只有none吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 17:02:10 | 显示全部楼层
vpq587 发表于 2019-11-16 16:25
我主要想知道为什么输出结果还有个3?print如果打印的是add函数的返回值,那不应该只有none吗?

。。。。。。。。。你一楼的原话:调用add(x,y)执行结果是3,加了print为什么又多出一个none?于是我告诉了你为什么多出一个none。现在你告诉我你主要想知道为什么有个3?你跟我闹呢,不就是因为你调用了add函数吗,add函数执行了打印语句吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 17:06:44 | 显示全部楼层
嗯……好吧,我知道了,我也把我4楼的话修正一下。你如果单独调用add函数,这时仅会执行函数内的print语句,打印z的值。但如果对add函数进行传值调用,即用变量接收add的值或者将add函数做为其它函数的参数值,此时因add函数没有return语句只会返回空值,所以add函数只能传出去一个None。当然此时add函数里的其余语句会正常执行。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 17:15:11 From FishC Mobile | 显示全部楼层
本帖最后由 wp231957 于 2019-11-16 17:17 编辑

最近老是能看到这个问题,也是无语
一个是输出至屏幕,给人眼睛看的
一个是返回一些数据,给调用者看的

我就搞不明白它俩之间既无区别,也无联系
为啥能放到一起问
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 18:07:53 | 显示全部楼层
add() 函数没有返回值就返回 None,打印 add(x, y) 就是打印 add() 的返回值,所以为 None。

在 Python 中,print 是打印一段文字,可以在任意地方使用;而 return 是返回一个值,只能在函数中使用。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-23 05:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表