鱼C论坛

 找回密码
 立即注册
查看: 1207|回复: 11

[已解决]小白求助,搞不清创建函数用return和pint的区别,求助

[复制链接]
发表于 2018-5-25 12:29:48 | 显示全部楼层 |阅读模式

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

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

x
小白求助,看了小甲鱼的学习python,还是搞不清创建函数用return和pint的区别,求助,急!!!求各位大神解答!
最佳答案
2018-5-25 16:25:11
本帖最后由 丶逗比 于 2018-5-25 16:26 编辑
  1. def test():
  2.     print('test')
  3. a = test()
  4. print(a)
  5. '''def一个函数,只是把他读到了内存里,如果你定义的这个函数没有return,
  6. 他默认是返回none的,所以当你将函数test()赋给一个变量a时,这个a其实是
  7. 等于你这个函数return的值'''
  8. #结果:test
  9. #      None



  10. def test1():
  11.     print('test1')
  12.     return '这是个返回值'
  13. a1 = test1()
  14. print(a1)
  15. #结果:test1
  16. #      这是个返回值



  17. #return还有结束函数的意思
  18. def test2():
  19.     print('test2')
  20.     return 0
  21.     print('再打印一个test2')
  22. c = test2()
  23. print(c)
  24. #结果:test2
  25. #      0





  26. #多个return时只执行第一个return,第一个return已经结束了
  27. def test3():
  28.     print('test3')
  29.     return 0
  30.     return 1
  31. d = test3()
  32. print(d)
  33. #结果:test3
  34. #      0



  35. def test4():
  36.     print('test4')
  37.     return '返回的test4'
  38. test4()
  39. '''当把函数写到内存中,并且调用该函数,函数里的print只是起到
  40. 一个执行作用,就只是打印出来‘test4’这个字符串,并不能进行
  41. 赋值操作,只有return返回的值才能对变量进行赋值'''
  42. #结果:test4
  43. print(test4)   #结果:<function test4 at 0x02A960C0>
  44.       #此时打印出来的只是一个内存地址,因为你并没有将test()复制给任何变量
  45. e = test4()
  46. print(e)
  47. #结果:返回的test4

复制代码

这是我个人理解,如有错误请指正,希望对楼主有所帮助。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-25 12:44:17 | 显示全部楼层
return可以将值拿来用,而print只是打印一次而已
举个例子
def fun():
    return 3

2*fun() #这样是可以的,输出2×3
而如果
def fun1()
     print(3)
那么
2*fun1() #这样将出错,因为fun1默认返回的是一个None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2018-5-25 13:23:55 From FishC Mobile | 显示全部楼层
有return 代表这个函数有返回值  你可以定义一个参数来将返回值赋值给你定义的参数  但是print是没有返回值的  如果函数中只有print 那么他是没有返回值的 或者说返回值为None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-5-25 15:36:14 | 显示全部楼层
简而言之,print是一个函数(在py2中被语句化了,换汤不换药),而return是一条语句,表示返回调用者。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-25 16:18:49 | 显示全部楼层
return可返回数据给变量,print只是简单的将数据打印到屏幕让你看到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-25 16:25:11 | 显示全部楼层    本楼为最佳答案   
本帖最后由 丶逗比 于 2018-5-25 16:26 编辑
  1. def test():
  2.     print('test')
  3. a = test()
  4. print(a)
  5. '''def一个函数,只是把他读到了内存里,如果你定义的这个函数没有return,
  6. 他默认是返回none的,所以当你将函数test()赋给一个变量a时,这个a其实是
  7. 等于你这个函数return的值'''
  8. #结果:test
  9. #      None



  10. def test1():
  11.     print('test1')
  12.     return '这是个返回值'
  13. a1 = test1()
  14. print(a1)
  15. #结果:test1
  16. #      这是个返回值



  17. #return还有结束函数的意思
  18. def test2():
  19.     print('test2')
  20.     return 0
  21.     print('再打印一个test2')
  22. c = test2()
  23. print(c)
  24. #结果:test2
  25. #      0





  26. #多个return时只执行第一个return,第一个return已经结束了
  27. def test3():
  28.     print('test3')
  29.     return 0
  30.     return 1
  31. d = test3()
  32. print(d)
  33. #结果:test3
  34. #      0



  35. def test4():
  36.     print('test4')
  37.     return '返回的test4'
  38. test4()
  39. '''当把函数写到内存中,并且调用该函数,函数里的print只是起到
  40. 一个执行作用,就只是打印出来‘test4’这个字符串,并不能进行
  41. 赋值操作,只有return返回的值才能对变量进行赋值'''
  42. #结果:test4
  43. print(test4)   #结果:<function test4 at 0x02A960C0>
  44.       #此时打印出来的只是一个内存地址,因为你并没有将test()复制给任何变量
  45. e = test4()
  46. print(e)
  47. #结果:返回的test4

复制代码

这是我个人理解,如有错误请指正,希望对楼主有所帮助。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 2

使用道具 举报

发表于 2018-5-25 23:11:07 | 显示全部楼层
print函数是输出一条语句,后面的程序依旧会执行
而return是输出(或者叫返回)一个变量,或者整型,字符串,True,False等,但后面的语句不会执行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-5-26 07:23:58 | 显示全部楼层
BngThea 发表于 2018-5-25 12:44
return可以将值拿来用,而print只是打印一次而已
举个例子
def fun():

谢谢大神回复,明白啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-26 07:25:59 | 显示全部楼层
丶逗比 发表于 2018-5-25 16:25
这是我个人理解,如有错误请指正,希望对楼主有所帮助。

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

使用道具 举报

 楼主| 发表于 2018-5-26 07:29:01 | 显示全部楼层
zhdwinter 发表于 2018-5-25 13:23
有return 代表这个函数有返回值  你可以定义一个参数来将返回值赋值给你定义的参数  但是print是没有返回值 ...

谢谢回复,受帮助啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-26 07:30:22 | 显示全部楼层
liangmanxing 发表于 2018-5-25 16:18
return可返回数据给变量,print只是简单的将数据打印到屏幕让你看到

谢谢指教,明白啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-28 13:35:52 | 显示全部楼层
咕咕鸡鸽鸽 发表于 2018-5-25 23:11
print函数是输出一条语句,后面的程序依旧会执行
而return是输出(或者叫返回)一个变量,或者整型,字符 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 08:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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