为了账号安全,请及时绑定邮箱和手机立即绑定

“打印”和“返回”之间的形式区别是什么?

“打印”和“返回”之间的形式区别是什么?

catspeake 2019-07-11 10:32:00
“打印”和“返回”之间的形式区别是什么?假设我定义了一个简单的函数,它将显示传递给它的整数:def funct1(param1):     print(param1)     return(param1)输出将是相同的,但是我知道当return语句在函数中使用,输出可以再次使用。否则,则为print语句无法使用。但我知道这不是正式的定义,有人能给我一个好的定义吗?
查看完整描述

3 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

带着print()的值将显示给标准输出。param1,同时return你会派param1打电话的人。

这两种说法的含义非常不同,你不应该看到同样的行为。张贴你的整个程序,它将更容易指出的差异,你。

编辑:正如其他人所指出的,如果您在一个交互式pythonshell中,您会看到同样的效果(值是打印出来的),但这是因为shell计算表达式并打印它们的输出。

在本例中,一个函数具有return语句作为return因此返回值被回显。不要让交互式的shell欺骗你!:)


查看完整回答
反对 回复 2019-07-11
?
DIEA

TA贡献1820条经验 获得超2个赞

print(或print()如果您使用的是Python 3),则可以准确地打印关键字后面的任何内容。它还会做一些很好的事情,比如用一个空格自动连接多个值:

print 1, '2', 'three'# 1 2 three

不然的话print (print())从程序的角度来看,什么也不做。它不会以任何方式影响控制流,并且将在代码块中的下一个指令中恢复执行:

def foo():
    print 'hello'
    print 'again'
    print 'and again'

另一方面return(不是return())设计为立即中断控制流并退出当前函数,并将指定的值返回给调用函数的调用者。它总是这么做的,就这样。return它本身不会导致任何东西被打印到屏幕上。即使不指定返回值,也是隐式的None会被归还。如果你跳过return总之,一个含蓄的return None仍然会在您的功能结束时发生:

def foo(y):
    print 'hello'
    return y + 1
    print 'this place in code will never get reached :('print foo(5)# hello# 6def bar():
    return # implicit return Noneprint bar() is None# Truedef baz(y):
    x = y * 2
    # implicit return Nonez = baz()print z is None# True

你看到的原因return打印到屏幕上的Ed值是因为您可能使用的是交互式Python shell,它会自动运行。printIt‘为了您自己的方便,有什么结果吗?


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 648 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信