只爱整活周淑怡 发表于 2020-7-25 19:42:38

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

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不是返回函数值吗????
求教!!!!!

zltzlt 发表于 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() 函数的返回值

Twilight6 发表于 2020-7-25 19:44:56



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

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

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

def outside():
    var = 5

    def inside():
      var = 3
      return var

    return inside()


print(outside())

页: [1]
查看完整版本: 关于return 和 print的区别,有无大佬帮忙解释下,球球啦