2012-08-13 57 views
2

我剛剛進入Python的參數,我發現它的參數系統在Python中的工作方式很奇怪(我不確定其他語言)。例如:Python參數計數

from sys import argv 

arg1, arg2, arg3 = argv 

print "First argument: ", arg1 
print "Second argument: ", arg2 
print "Third argument: ", arg3 

當我運行此命令行與下面的參數:

python example.py First Second 

它給人的輸出:

First argument: example.py 
Second argument: First 
Third argument: Second 

這是否意味着蟒蛇開始計數,零?或者有一些不同的或更多的原因。這很奇怪,但很有趣。

+0

@GregHewgill點正確提及並在下面進行編輯。 – 2012-08-13 00:45:12

+0

在附註上,我會使用argparse這是一種更好的方式來讀取命令行參數,並提供幫助選項。這是一些流行的python庫所使用的事實選項。 – 2012-08-13 00:47:25

+0

@Joseph我認爲你正在閱讀** Learn Python The Hard Way **,我正確嗎? – 2012-08-13 02:42:30

回答

8

是的,Python在推測時使用了從零開始的索引(和許多其他編程語言一樣)。

sys.argv是一個字符串列表。

sys.argv[0]將包含腳本的名稱,並且此列表中的後續條目將包含提供給該腳本的命令行參數。

我打算提供一個例子,但是你在文章中的含義與我想象的一樣好。

最後,正如@GregHewgill在下面的有用評論中指出的那樣,Python docs也提供了更多信息。

+0

Python的文檔也很棒。這是記錄在這裏:http://docs.python.org/library/sys.html – 2012-08-13 00:41:03

+0

@GregHewgill我會在我的答案中添加一個鏈接,如果你確定它呢? – Levon 2012-08-13 00:41:47

+0

當然...... :) – 2012-08-13 00:42:10

4

參數已從0開始計數,因爲C與argv以及可能在此之前。參數0是可執行文件/腳本名稱,其後的所有其他參數都從1開始。