2016-10-02 71 views
-1

我是一个绝对的初学者,一般来说Python和编程,我刚刚第一次接触到函数。Python:打印一个简单的功能

我定义了两个简单的功能如下:

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

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

output1() 
output2() 

救上面一个叫function.py剧本,然后我用windows电源外壳运行脚本,并印刷以下为你期望:

Hello, world! 
Hello, there! 

然而,当我修改剧本:

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

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

print output1() 
print output2() 

它打印:

Hello, world! 
None 
Hello, there! 
None 

出于好奇,为什么它这样做时,我前缀输出1和输出2与打印?

+0

如果你是新来的Python,你为什么与Python 2开始? [Python堆栈溢出社区](http://sopython.com)绝大多数[推荐](http://sopython.com/wiki/What_tutorial_should_I_read%3F)以Python 3开头,[python.org本身](https ://wiki.python.org/moin/Python2orPython3)。版本3是语言的现在和未来,而2是过去。首先学习2,你会学到很多不好的习惯,当你学习3(你最终需要做的)时需要纠正,所以最好从3开始,然后学习2的差异后来。 – MattDMo

+0

我从2.7开始,因为我正在查看的大多数教程都使用它。除此之外,我还看到有些库与3不兼容。我想我以后总是可以学习3,我真的怀疑两者之间的差异是惊人的。 @MattDMo – seeker

+1

剩下的库很少,不能与3一起工作。根据你要做什么类型的工作,这可能永远不会成为问题。这是5年前,但不是现在。你*会*用2学习不良习惯,以后不得不学习,所以如果你现在只是在学习,那么先学习好的方法会好得多。 3.5中的标准库在2.7以上得到了很大的改进,具有更多的功能,这意味着需要更少的第三方进口。如果你想先学习2,那是你的选择,但很多比我经验丰富的人强烈推荐3。 – MattDMo

回答

2

它的工作原理是这样的,因为:

print output1() 

意味着你要打印的功能(即返回的值)的结果。

而且由于函数中没有返回值,所以默认情况下它是无。

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

print output1() 
print output2() 

会导致:

Hello, world! 
None 
Hello, there! 
Something 
5

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

在Python中,函数默认返回None

您现在还在打印返回值output1output2

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