2013-02-17 92 views
2

這是我第一天學習編程。我遵循Python編程:計算機科學第二版簡介。由約翰澤爾,迄今爲止一切順利。Python初學者:<Syntaxerror:invalid syntax>試圖導入程序時

唯一的問題是,當我嘗試導入保存的程序時,出現語法錯誤。我編寫程序並在執行前保存它,但是當我嘗試導入它時,出現錯誤。我嘗試打開一個新的殼但沒有雪茄的實例。我使用的是OSX Lion 10.8和Python 2.7.3。任何幫助表示讚賞。這就是問題的樣子:

>>> #File: chaos.py 
>>> #A simple program illustrating chaotic behavior. 
>>> def main(): 
    print "This program illustrates a chaotic function" 
    x=input("Enter a number between 0 and 1: ") 
    for i in range(10): 
     x = 3.9 * x * (1-x) 
     print x 


>>> main() 
This program illustrates a chaotic function 
Enter a number between 0 and 1: .25 
0.73125 
0.76644140625 
0.698135010439 
0.82189581879 
0.570894019197 
0.955398748364 
0.166186721954 
0.540417912062 
0.9686289303 
0.118509010176 
>>> import chaos 

Traceback (most recent call last): 
    File "<pyshell#47>", line 1, in <module> 
    import chaos 
    File "chaos.py", line 1 
    Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43) 
      ^
SyntaxError: invalid syntax 
+0

你能張貼亂的內容。 py或至少第一行有語法錯誤? – 2013-02-17 17:31:25

回答

1
File "chaos.py", line 1 
    Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43) 
      ^
SyntaxError: invalid syntax 

它看起來像你的chaos.py腳本的第一行有一個線,是不是蟒蛇:

Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43) 

它應該被刪除或commented-用#標誌開始行。


一些提示要記住:

  • 在Python中,空格是很重要的 - 它們表示縮進 水平。不要混合使用空格和製表符,以免Python提升IndentationError
  • 在文本或網頁時,您可能會看到互動 會議,其中包括>>>...表示Python提示符或 縮進級別的成績單。如果您將代碼傳輸到腳本,則必須刪除這些代碼。
+0

好的謝謝你們的幫助。我正在學習一堆。我刪除了該代碼段,以及「>>>」,並在開頭處插入了#號,現在我得到: >>> import chaos Traceback(最近調用最後一次): File「 「1號線,在 進口混亂 文件 」chaos.py「,1號線 」 >>>高清的main(): ^ 語法錯誤:EOL同時掃描字符串字面 >>> – Victor 2013-02-17 20:41:18

+0

的錯誤說法你有一個沒有關閉的引號(可能是''''或''')。也許你應該刪除'chaos.py',打開一個新文件並剪切並粘貼@rodrigo發佈的代碼,並保存爲'chaos.py'。那麼你應該很好去。 – unutbu 2013-02-17 20:59:50

+0

@rodrigo 我只是下載了Xcode,我對很多菜單項目感到不知所措......我選擇哪一種方式編寫Python程序,只是一個空白文檔?或者我應該選擇「Shell腳本」?所以如果我有這個權利,我寫我的程序在Xcode或textedit或其他,然後通過導入它們在IDLE shell中運行它們....是這樣嗎? 對不起所有非常基本的問題,我很難理解概念框架。我會很感激你可以指點我的任何初學者資源,因爲目前爲止還沒有很明顯的發現 – Victor 2013-02-18 03:57:50

1

我的猜測是,您正在逐字複製終端的內容到文件。還有很多東西不應該在那裏,包括版本提示

該文件應剛是這樣的:

#File: chaos.py 
#A simple program illustrating chaotic behavior. 
def main(): 
    print "This program illustrates a chaotic function" 
    x=input("Enter a number between 0 and 1: ") 
    for i in range(10): 
     x = 3.9 * x * (1-x) 
     print x 

沒有>>>,沒有...,沒有製表當然不要複製的版本信息:

Python 2.7.3 (default, Dec 22 2012, 21:27:36) 
[GCC 4.7.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
+0

rodrigo,當我打開IDLE時,爲什麼我不能刪除版本提示等?我試圖粘貼你的解決方案來檢查它是否能正常工作,而且我無法刪除版本提示和>>> – Victor 2013-02-17 20:46:41

+0

@ user2080913:你正在將IDLE Shell窗口與常規文本編輯器混淆。公平地說,IDLE並沒有使區分變得容易......你必須用適當的編輯器打開'.py'文件(IDLE有一個編輯器,但它不是默認啓動的),編輯出額外的行和適當地格式化代碼。 – rodrigo 2013-02-17 22:39:27

+0

OK rodrigo,我打開了IDLE的文本編輯器(或者至少我認爲我是通過去文件>新建的),然後將修改後的程序複製並粘貼到該文件中,保存並打開IDLE shell窗口以嘗試導入程序。這是發生了什麼: Python 2.7.3(v2.7.3:70274d53c1dd,Apr 9 2012,20:52:43) [GCC 4.2.1(Apple Inc. build 5666)(dot 3)]在達爾文 類型「版權」,「信用」或「許可證()」以獲取更多信息。 >>>進口混亂 >>> main()的 回溯(最近通話最後一個): 文件 「」,1號線,在 的main() NameError:名字 '主' 沒有定義 > >> – Victor 2013-02-18 02:11:06