2013-08-02 15 views
4

末的說法時,我不知道爲什麼我得到,因爲我有完全做了錯誤的書上說Python中的SyntaxError使用帶有打印功能

>>> os.getcwd() 
'C:\\Users\\expoperialed\\Desktop\\Pyt…' 
>>> data = open('sketch.txt') 
>>> print(data.readline(),end="") 
SyntaxError: invalid syntax 
+0

你使用的是什麼python版本? 'python --version' – jozefg

+5

檢查你的Python版本。在Python 3之前,'print'不是一個函數,如果你試圖像這樣調用它,這就是2.x給出的錯誤。 –

+0

該版本是2.7.4 –

回答

2

它看起來像你跑錯了Python版本。公司目前旗下有2個版本的Python的跑來跑去,2和3。在Python 2,print是一個語句,所以你應該改變你的代碼太

print data.readline(), # The trailing comma to stop the newline 

而在3這是一個功能,應該用您的圖書節目。

它看起來像你的書是在Python 3所以你應該升級你的Python(對於一個初學者來說,沒有理由不使用Python 3)

6

我覺得你的問題是,你有關於Python 2.x和正在使用Python 3.x的語法。在Python 3.x中,print是內置的,可以像那樣使用。但是,在2.x中,它是一個關鍵字,不能。如果你是在2.x中,做到這一點:

print data.readline(), 

的一種方式,看看你所使用Python的版本是這樣的:

import sys 
if sys.version_info.major == 2: 
    # We are running 2.x 
elif sys.version_info.major == 3: 
    # We are running 3.x 

,或者從終端:

$ python --version 

解決此問題的最佳方法可能是升級到Python 3.x.但是,如果您不能,那麼您可能需要查看__future__模塊。它可以讓這個你可以在2.x的使用Python 3.X的print功能:

>>> from __future__ import print_function 
>>> print("yes!") 
yes! 
>>> print("a", "b", sep=",") 
a,b 
>>> 
+0

增加了缺失,(這是什麼結束='') –

+0

@AnttiHaapala:啊,好的電話。我忘了那個。 – iCodez

8

或者,使用打印功能像你想在Python 2:

>>> from __future__ import print_function 

這會盡管由於__future__模塊的工作方式而需要位於Python程序的頂部。

+0

+1 - 你的帖子就像我添加到我的答案一樣! – iCodez