【问题标题】:Python: Printing a simple function [duplicate]Python:打印一个简单的函数[重复]
【发布时间】:2017-02-10 16:29:03
【问题描述】:

我是 Python 和一般编程的绝对初学者,我刚刚第一次接触函数。

我在下面定义了两个简单的函数:

def output1():
   print "Hello, world!"

def output2():
   print "Hello, there!"

output1()
output2()

将以上内容保存到名为 function.py 的脚本中,然后我使用 windows power shell 运行该脚本,它会按照您的预期打印以下内容:

Hello, world!
Hello, there!

但是,当我将脚本修改为:

def output1():
   print "Hello, world!"

def output2():
   print "Hello, there!"

print output1()
print output2()

打印出来:

Hello, world!
None
Hello, there!
None

出于好奇,当我在 output1 和 output2 前加上 print 时,为什么它会这样做?

【问题讨论】:

  • 如果您是 Python 新手,为什么要从 Python 2 开始?从 Python 3 开始,Stack Overflow Python community 绝大多数是 recommendspython.org itself 也是如此。第 3 版是该语言的现在和未来,而第 2 版是过去。在先学习 2 的过程中,您会养成许多在学习 3 时需要纠正的坏习惯(最终您需要这样做),因此最好先从 3 开始,然后学习 2 中的差异稍后。
  • 我从 2.7 开始,因为我正在查看的大多数教程都使用它。除此之外,我还读到有些库与 3 不兼容。我想我以后总是可以学习 3,我真的怀疑两者之间的差异无论如何是惊人的。 @MattDMo
  • 很少有库不能与 3 一起使用。根据您将要执行的工作类型,这甚至可能永远不会成为问题。那是5年前,但不是现在。你学习2个以后必须改掉的坏习惯,所以如果你现在才学习,最好先学习好方法。 3.5 中的标准库比 2.7 有了很大改进,具有更多功能,这意味着需要更少的第三方导入。如果你想先学 2,那是你的选择,但是很多比我经验丰富的人非常强烈推荐 3。

标签: python python-2.7 function


【解决方案1】:

一个函数可以有一个返回值:你调用这个函数,它会返回一些东西到它被调用的地方。

函数在 Python 中默认返回 None

您现在还打印了output1output2 的返回值。

您可以阅读更多关于 Python 语言教程的 in this section 的信息。

【讨论】:

    【解决方案2】:

    它是这样工作的,因为:

    print output1()
    

    表示要打印函数的RESULT(即return的值)。

    因为你的函数没有返回值,所以默认是 None。

    def output1():
       print "Hello, world!"
    def output2():
       print "Hello, there!"
       return "Something"
    
    print output1()
    print output2()
    

    会导致:

    Hello, world!
    None
    Hello, there!
    Something
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      • 2013-12-06
      • 2022-08-18
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多