鱼C论坛

 找回密码
 立即注册
查看: 1450|回复: 2

[已解决]关于return 和 print的区别,有无大佬帮忙解释下,球球啦

[复制链接]
发表于 2020-7-25 19:42:38 | 显示全部楼层 |阅读模式

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

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

x
1.
def outside():
    var = 5
    def inside():
        var = 3
        print(var)
        
    inside()

outside()


2.
def outside():
    var = 5
    def inside():
        var = 3
        return var
        
    inside()

outside()


上面两组代码第一组运行outside()打出的是3;第二组运行outside()却没反应,这是为啥啊,return不是返回函数值吗????
求教!!!!!
最佳答案
2020-7-25 19:43:45
本帖最后由 zltzlt 于 2020-7-25 19:50 编辑

return 和 print 的本质是不同的,return 是用于在函数中返回一个值,print 是向屏幕上输出一些东西。

你第 2 段代码没有打印出 var 的原因是 outside() 没有返回 inside() 函数的返回值,而第 1 段代码打印出了 var 是因为 print() 是直接打印,不返回。

在交互模式中能不用 print() 就能打印出函数的返回值,是因为交互模式会实时把代码的执行结果反馈给你:
>>> def test():
        return 1

>>> test()    # 不用 print() 也能打印出 test() 的返回值
1
>>> 2 + 3     # 实时反馈结果
5

第 2 段代码改成这样就能和第 1 段代码执行结果一样了:
def outside():
    var = 5

    def inside():
        var = 3
        return var

    return inside()    # 调用 inside() 并返回 inside() 函数的返回值


print(outside())       # 这里还得 print(),打印 outside() 函数的返回值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-25 19:43:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zltzlt 于 2020-7-25 19:50 编辑

return 和 print 的本质是不同的,return 是用于在函数中返回一个值,print 是向屏幕上输出一些东西。

你第 2 段代码没有打印出 var 的原因是 outside() 没有返回 inside() 函数的返回值,而第 1 段代码打印出了 var 是因为 print() 是直接打印,不返回。

在交互模式中能不用 print() 就能打印出函数的返回值,是因为交互模式会实时把代码的执行结果反馈给你:
>>> def test():
        return 1

>>> test()    # 不用 print() 也能打印出 test() 的返回值
1
>>> 2 + 3     # 实时反馈结果
5

第 2 段代码改成这样就能和第 1 段代码执行结果一样了:
def outside():
    var = 5

    def inside():
        var = 3
        return var

    return inside()    # 调用 inside() 并返回 inside() 函数的返回值


print(outside())       # 这里还得 print(),打印 outside() 函数的返回值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-25 19:44:56 | 显示全部楼层


return 是设置函数返回值,函数返回并不会自动打印,需要加上 print  函数打印

而当在 IDLE 或者其他编辑器控制台时候会自动帮你打印返回值

所以你第二个代码要改成这样就好了,两个函数都要设置下 return 并且最外面的需要打印:
def outside():
    var = 5

    def inside():
        var = 3
        return var

    return inside()


print(outside())

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 20:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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