Closed xu-kai-xu closed 2 years ago
先搞清楚 return
和 print()
分别是什么、做什么的……
我的理解,return
是返回函数的执行结果。print
是将特定内容输出到控制台。区别在于函数返回值不会直接被输出到控制台。
然后,想了想发现 run
中只是调用了 _say' ,所以相当于只是返回
_say` 的结果,并没有打印的命令。
之后分别在 jupyter notebook 中 和 cmd 中执行了代码:
q = 'How are you today?'
def say(s):
return s
say(q)
发现命令行执行时(另存为 *.py 文件)不会输出结果,而 jupyter notebook 中执行时会有单引号括起来的结果。
所以,之前感到困惑的原因在于,同样的代码,在命令行中执行没有输出结果,在 jupyter notebook 中执行却看到了输出结果。虽然还不知道具体原因,但进一步搞清楚了 return
和 print
的区别。谢谢老师
return
是语言本身的特性,定义函数的返回值,如果后面没有值,实质上等于该函数返回 None
;print()
是个内置函数,没有返回值,但会在系统控制台输出内容。完全不同的两个东西。所以你要做什么?该选择哪个?
程序中,机器人说的话需要打印到控制台中让我们看见才行,所以必须要有print
才可以。懂了。
第一阶段课程大作业 1,机器人。 看了 bilibili 上大作业的视频,对照着敲代码,然后发现
Bot
类方法_say()
中用的是print
,我修改成了return
,然后就无法打印问题,也无法打印回复。代码如下:然后又试了试下面的代码:
这样用是没问题的。所以,就搞不清楚为什么在类方法
_say()
中用return
函数会出问题。谢谢老师 @neolee