2012-04-09 147 views
1

我寫了下面的腳本,其生成SyntaxError語法錯誤

#!/usr/bin/python 
print "Enter the filename: " 
filename = raw_input("> ") 
print "Here is your file %r: ", % filename 

txt = open(filename) 
print txt.read() 
txt.close() 

以下是錯誤:

File "ex02.py", line 4 
    print "Here is your file %r: ", % filename 
            ^
SyntaxError: invalid syntax 

我應該如何解決這個問題?

+0

感謝大家。這是一個愚蠢的錯誤。剛開始用python :) – John 2012-04-09 05:53:22

回答

1

麻煩就出在這裏:

print "Here is your file %r: ", % filename 
          ^

print找到一個逗號,它使用的是作爲參數分隔符,可以用看到:

>>> print 1,2 
1 2 

在這種情況下,下一個參數需要有效,並且序列% filename不是

你什麼意思無疑是:

print "Here is your file %r: " % filename 

按照以下成績單:

>>> filename = "whatever" 

>>> print "file is %r", % filename 
    File "<stdin>", line 1 
    print "file is %r", % filename 
         ^
SyntaxError: invalid syntax 

>>> print "file is %r" % filename 
file is 'whatever' 
+3

'print'語句末尾的逗號將終止符從換行符改爲空格。 – 2012-04-09 05:43:12

+0

當然,這在3.x中發生了變化,其中'print'變成了一個實際的函數。 – 2012-04-09 10:15:41

2

是不需要的昏迷,嘗試:

filename = raw_input("> ") 
print "Here is your file %r: " % filename 
+1

其實,逗號可能*是*需要的。它不能去*那裏*。 – 2012-04-09 05:45:24

3

你不能有一個逗號那裏。

print ("Here is your file %r: " % filename), 
+0

逗號的結尾是什麼? – 2012-04-09 05:44:05

+3

@Abhranil:'print'語句末尾的逗號將終止符從換行符改爲空格。 – 2012-04-09 05:44:43

+0

噢,好,我不知道!如果我不想要一個空間,你會怎麼做? – 2012-04-09 05:46:14