鱼C论坛

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

[已解决]print 和 return 区别 讨论

[复制链接]
发表于 2017-5-26 15:10:40 | 显示全部楼层 |阅读模式

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

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

x
正在做 24课时后的习题第二题。
我最开始的代码如下:
  1. def get_digits(n):
  2.    
  3.     if n < 10:
  4.         print([n])
  5.     else:
  6.         lista = []
  7.         s = n % 10
  8.         
  9.         lista.insert(0,s)
  10.         get_digits(n//10)
  11.         [b][color=Red]print(lista)[/color][/b]
  12.    

  13. temp = input('请输入数字:')
  14. num = int(temp)
  15. get_digits(num)
  16.    
复制代码


如果输入:12345 会 依次显示:
  1. [1]
  2. [2]
  3. [3]
  4. [4]
  5. [5]
复制代码


可是如果我将 print(lista) 改为 return lista 结果只会打印 [1]
这是为什么呢?求大神讲解
最佳答案
2017-5-26 15:47:20
一般来说,print只会为了在调试的时候看看中间值是不是正确的输出
return是为了得到一个函数的结果,方便其他函数来调用
return也代表了一个函数的结束,return之后的代码不会继续在函数里面执行,所以,你改为return就只能得到1个值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-5-26 15:11:47 | 显示全部楼层
本想把print(lista) 加粗标红,结果显示成代码了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-26 15:45:48 | 显示全部楼层
输出(打印)和返回有什么区别
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-26 15:47:20 | 显示全部楼层    本楼为最佳答案   
一般来说,print只会为了在调试的时候看看中间值是不是正确的输出
return是为了得到一个函数的结果,方便其他函数来调用
return也代表了一个函数的结束,return之后的代码不会继续在函数里面执行,所以,你改为return就只能得到1个值

评分

参与人数 1鱼币 +2 收起 理由
清风揽月shine + 2 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-26 15:55:57 | 显示全部楼层
本帖最后由 ButcherRabbit 于 2017-5-26 15:59 编辑


分析一下过程:
123456    lista=[]   s=6      lista=[6]    get_digits[12345]    打印[6] 换行

12345      lista=[]   s=5      lista=[5]    get_digits[1234]      打印[5] 换行

1234        lista=[]   s=4      lista=[4]    get_digits[123]        打印[4] 换行
.
123          lista=[]   s=3      lista=[3]    get_digits[12]          打印[3] 换行

12            lista=[]   s=2      lista=[2]    get_digits[1]            打印[2] 换行
.
1      满足n<10     打印[1] 换行

逆推上去


return 只有在函数里面使用,且函数里面return完,后面的代码是不运行的
print(),就是打印到屏幕上的意思
  1. def spam(temp):
  2.     return  temp*2
  3.     print('这句绝对不运行')
  4. print(spam(2))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-26 18:59:57 | 显示全部楼层
return ---》 返回一个值 ,然后函数停止运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-27 08:18:17 | 显示全部楼层
函数在遇到return语句时,即返回值,不再执行下面的语句了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-28 22:18:38 | 显示全部楼层
深入了解函数就明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-28 22:46:27 | 显示全部楼层
print语句不会终止函数,函数会一直递归执行下去,并显示每一步的结果;
return会终止函数,只返回最后一次递归的结果,然后终止函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 14:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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