2014-01-17 179 views
3
def white(): 
    print 
print ("First line") 
white() 
print ("Second line") 

這是我的第一個腳本之一。當我按下「F5」鍵時,結果如下:函數不打印預期結果

First line 
Second line 

錯誤在哪裏?

+5

你'white'方法實際上並沒有做任何事......如果 – Basic

+0

'def'沒有工作,你會得到一個NameError是因爲你沒有定義任何東西。 :P – geoffspear

+0

你真的很好,但是先嚐試谷歌(那裏有一個非常好的教程:http://www.learnpython.org/) – Alvaro

回答

0

如果你想要你的white()方法打印空白,你需要第二行的打印語句看起來更像這樣:print(" ")。沒有參數的電話print不會做任何事情。

+0

問題是,Python 3中的print不是**語句**,而是**函數**。 –

8

您正在使用Python 3,其中print是一個函數。在Python 2中,print是一個聲明,您的代碼將按照您的預期行事。

這條線:

print 

不調用該函數。它只是查找名稱print。這並不會導致任何東西放置在輸出設備上。

你大概的意思是寫這樣的事情,實際上調用該函數:

def white(): 
    print() 

print ("First line") 
white() 
print ("Second line") 

輸出

 
First line 

Second line 
1

如果您正在使用python 3,然後選擇 '打印' 是一個函數,而不是一個聲明。爲了打印一行你需要實際調用它。

def white(): 
    print() 
3

在Python 2中white()打印一個新行,而在Python 3中則沒有。

$ python2 /tmp/white.py 
First line 

Second line 
$ python3 /tmp/white.py 
First line 
Second line 

print的Python 2和Python 3之間改變在Python 2 print的行爲是一個關鍵字,並且簡單地寫入打印print一個新行。在Python 3中是一個函數,需要括號。如果你只寫print那麼你有一個聲明,它只是檢索print函數,但沒有調用它,所以什麼也沒有發生。爲了得到一個空行,你需要呼叫它:

def white(): 
    print() 
print ("First line") 
white() 
print ("Second line")