2010-09-03 92 views
6

我現在學習Python,而今​​天,我在 http://docs.python.org/release/2.5.4/tut/node8.html執行模塊,腳本

6.1.1遇到了一個問題 執行模塊,腳本

當你運行一個Python模塊

python fibo.py <arguments>

模塊中的代碼將被執行,就像您導入它一樣,但將 __name__設置爲「__main__」。這意味着,通過在 末尾添加該代碼的模塊:

if __name__ == "__main__": 
    import sys` 
    fib(int(sys.argv[1])) 

你可以使用一個腳本以及 一個導入的模塊文件,因爲代碼 它解析

$ python fibo.py 50 1 1 2 3 5 8 13 21 34

:命令行僅當模塊被作爲 「主」文件執行運行

,但是當我這樣做的外殼,我得到了

File "<input>", line 1 
python fibo.py 222 
SyntaxError: invalid syntax 

如何正確執行腳本?

fibo.py是

def fib(n): 
    a,b=0,1 
    while b<n: 
     print b, 
     a,b = b,a+b 


def fib2(n): 
    result=[] 
    a,b=0,1 
    while b<n: 
     result.append(b) 
     a,b=b,a+b 
    return result 

if __name__ =="__main__": 
    import sys 
    fib(int(sys.argv[1])) 
+1

「python fibo.py 222」它是正確的。向我們展示您的腳本,它會在第一行中出現語法問題。 – 2010-09-03 14:48:59

回答

13

你究竟在shell做什麼?你正在運行的代碼是什麼?

這聽起來像你在你的腳本中犯了一個錯誤 - 可能是錯過了冒號或者縮進了錯誤。如果沒有看到您正在運行的文件,則無法多說。

編輯:

我想通了什麼錯誤。您正試圖在python shell中運行python fibo.py 222。我得到同樣的錯誤,當我做到這一點:

[138] % python 
Python 2.6.1 (r261:67515, Apr 9 2009, 17:53:24) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> python fibo.py 222 
    File "<stdin>", line 1 
    python fibo.py 222 
      ^
SyntaxError: invalid syntax 
>>> 

您需要從操作系統的命令行提示符不是從Python的交互shell中運行它。

確保首先切換到Python主目錄。例如,從操作系統的命令行輸入:cd C:\ Python33 \ - 取決於您的python版本。礦是3.3。然後鍵入:python fibo.py 200(例如)

+0

謝謝開發真的幫助但我可以在交互式shell內調用fibo.fib(123)&fibo.fib2(345) – 2016-10-03 12:13:49