2015-10-14 428 views
0

我只是用了一個簡介編程課程(需要python3.x)運行python2.7日食PyDev的,所以我用用,我運行括號奇怪的括號

問題更新打印語句進入最後的while循環後,print()語句包含括號。

print('Number of flushes: ', flush)

回報

('Number of flushes: ', 0) 

奇怪的是較早的程序,while循環結束前,打印()語句的工作完全符合預期。到底是怎麼回事?

+0

理想情況下,編程時應該使用正確版本的Python,但是您也可以使用聯機解釋器來測試您的代碼是否按預期工作。一個流行的是[ideone.com](https://ideone.com/),只需選擇Python3作爲語言。 –

回答

4

在Python 2.x中,print是一個聲明,而不是一個功能,所以在這裏:

print('Number of flushes: ', flush) 

是有效的語法,但是括號被解釋爲一個元組:

>>> print 3, 4 
3 4 
>>> print (3, 4) 
(3, 4) 
1

在Python 2.X,print是一個語句,不是s的功能。當只有一個參數時,將括號放在參數上是可以的,但是當有兩個或更多參數被視爲一個元組時。解決這個問題的方法之一是在代碼頂部插入語句from __future__ import print_function。這將打印語句轉換爲函數,並在打印兩個或更多項目時發出預期的行爲。但是,您必須將所有打印語句轉換爲函數形式。