3

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

これは、Pythonがゼロからカウントを開始することを意味しますか?それとも、それがそれを行ういくつかの異なるまたはいくつかの理由がありますか?奇妙ですが、面白いです。

4

2 に答える 2

9

はい、Pythonはあなたが推測したように(そして他の多くのプログラミング言語もそうするように)ゼロベースのインデックスを使用します。

sys.argv文字列のリストです。

sys.argv[0]スクリプトの名前が含まれ、この文字列リストの後続のエントリには、スクリプトに提供されたコマンドライン引数が含まれます。

私は例を提供するつもりでしたが、あなたの投稿にあるものは私が思いつくことができる限り良いものです。

最後に、@ GregHewgillが以下の役立つコメントで指摘しているように、Pythonドキュメントにはこれに関する詳細情報も記載されています。

于 2012-08-13T00:39:25.417 に答える
4

argv引数は、Cから、そしておそらくそれ以前に0から数えられています。引数0は実行可能ファイル/スクリプト名であり、それに続く他のすべての引数は1から始まります。

于 2012-08-13T00:40:21.687 に答える