2013-06-03 48 views
0

我編寫了一個代碼,它正在使用Python3在我的PC上編譯。但在上傳到Codechef服務器時顯示錯誤。請建議,我在Python 3編碼首次不在Python3中編譯的代碼

Traceback (most recent call last): 
    File "/run-ls7W2DcLmzUs9GNKbLGN/solution.py", line 41, in <module> 
    l,r,k=map(int,input().split()) 
    File "<string>", line 1 
    9 23 1 
    ^
SyntaxError: invalid syntax 

回答

3

您使用python2.x,其評價你input輸入字符串。將功能從input更改爲raw_input,您應該全部設置。

如果你想要的代碼爲兩個python2.x和python3.x工作,你可以在你的腳本的頂部做一個簡單的小黑客就像這樣:

try: 
    #This raises `NameError` on python3.x since `raw_input` is renamed to `input` 
    input = raw_input 
except NameError: 
    pass 

它不漂亮,但它作品(並且我偶爾也會使用類似的東西)。最終,這會影響python2.x上的內置input,但這真的沒什麼大不了的。無論如何,你可能不想使用內建的任何嚴肅的編碼。

+2

或實際使用Python 3.x –

+0

@Lattyware - 自然。 – mgilson

+1

如果你正在編寫向後兼容的代碼,我建議以另一種方式來做:'如果sys.version_info> =(3,):raw_input = input',所以你不要混淆Python 2程序員。 – RoadieRich