关于函数里的print和return
def fun(n):if n == 0:
age = 10
else:
age = fun(n-1) + 2
return age
print(fun(4))这个代码可以正常返回18,下边这个为啥就是返回TypeError: unsupported operand type(s) for +: 'NoneType' and 'int',return和print讲道理不是差不多一个意思么
def fun(n):
if n == 0:
age = 10
else:
age = fun(n-1) + 2
print(age)
# return age
fun(4)
print是给人看的
return是返给调用者的
它俩没有任何关联,我也搞不懂为啥这个问题总是有人在问 return终止函数调用,并反馈结果,print() 只是一个普通函数,其作用是打印变量内容,二者毫无关系。 我猜楼主应该是习惯性用 Python 的 IDLE 写代码吧?
所以才建议新手自行下载自己喜欢的编译器写代码,不建议用 Python 原本的 IDLE(不然不知道什么时候该用 print())
在 IDLE 交互界面直接操作 fun(4) 是可以看到函数返回值的,即函数的 return 值,但是从代码编辑器中运行过来是不会直接打印返回值的,需要你加上 pirnt
你可以自己去 IDLE界面 直接操作代码试试,只要有返回值,IDLE界面都会打印出来,反之如果函数没有显式设置返回值,IDLE就会打印一个空的行,实际上是 None
但是你在编辑器里面调用是不会直接打印返回值的,必须要带上print
而这两个关键字主要差别在于,一个是函数(print),一个是特殊作用的关键字(return)
在函数中,若许要将结果返回给外部使用,那么需要利用 return 设置返回值才可在外部接收到数值
而使用 print 函数只是单纯的将 print 函数中的内容打印到 Python 控制台,以供查看,是不能设置函数返回值的
Twilight6 发表于 2022-4-30 09:41
在 IDLE 交互界面直接操作 fun(4) 是可以看到函数返回值的,即函数的 return 值,但是从代码编辑器中运行 ...
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'那这个报错是因为什么原因额 代码小白liu 发表于 2022-4-30 10:24
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'那这个报错是因为什么原因额
你尝试着将一个 None 与 一个 int 整形数值进行 + 加法操作,导致报错
傻眼貓咪 发表于 2022-4-30 09:02
我猜楼主应该是习惯性用 Python 的 IDLE 写代码吧?
所以才建议新手自行下载自己喜欢的编译器写代码,不 ...
pycharm就很好,不过新手一般是先用的idle吧{:9_241:} 洛与春风 发表于 2022-4-30 12:45
pycharm就很好,不过新手一般是先用的idle吧
用 idle 不是不能,前提是不要只懂用,却不知其道理,通常遇到同样的问题:
(一)缩排问题
(二)为什么 IDLE 不能直接拷贝贴上代码?
(三)为什么有时代码打印不出来?不懂什么是 print() 和 return 分别。
***以上就是新手的十万个为什么。
傻眼貓咪 发表于 2022-4-30 12:54
用 idle 不是不能,前提是不要只懂用,却不知其道理,通常遇到同样的问题:
(一)缩排问题
(二)为什 ...
新手一开始学的时候,网课啊啥的推荐的就是自带的idle,我也是后来学了一段时间才知道的 洛与春风 发表于 2022-4-30 12:58
新手一开始学的时候,网课啊啥的推荐的就是自带的idle,我也是后来学了一段时间才知道的
idle又丑又不好用
页:
[1]