2016-10-02 101 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的更多信息。