プログラムの実行時にコマンドライン引数と呼ばれる値を渡して,その値を利用するプログラムを作成しよう.たとえば power.py というプログラムを作成し,実行時に power.py 2 10
のように2個の整数を渡すと,2の10乗を計算し,1024を出力するプログラムを作成します.なお,このようなコマンドライン引数は,その位置と役割が決まっている(つまり1個目の引数はa,2個目は指数 n と決まっている)ので,位置引数と呼ばれます.
コマンドライン引数を利用するには,下記プログラム (power.py) の1行目にあるように sys
モジュールをインポートします.実行時のコマンドライン引数は sys.argv
という名前のリストに格納されます.0番目がプログラムのファイル名であり,1番目以降にスペースで区切られた引数が文字列形式で格納されています.
下記のプログラム power.py では,引数が2個以外の場合にはエラーメッセージを表示して終了し,2個の場合はべき乗を計算して計算結果を表示しています.
べき乗を計算する (power.py)
import sys
if(len(sys.argv) == 1): # 引数なし
print("引数を整数で2個指定してください")
exit()
elif(len(sys.argv) == 2): # 引数が1個だけ
print("引数が足りません。2個指定してください")
exit()
elif(len(sys.argv) > 3): # 引数が3個以上
print("引数が多すぎます。2個指定してください")
exit()
# 引数を整数に変換して変数に格納する
x = int(sys.argv[1])
y = int(sys.argv[2])
z = x ** y
print(x, "^", y, "=", z)
上のプログラムを実行すると,次のようになります.
Z:Documents\python>python power.py ⏎ 引数を整数で2個指定してください Z:\Documents\python>python power.py 2 ⏎ 引数が足りません。2個指定してください Z:\Documents\python>python power.py 2 10 20 ⏎ 引数が多すぎます。2個指定してください Z:\Documents\python>python power.py 2 10 ⏎ 2 ^ 10 = 1024 Z:\Documents\python>python power.py 2 128 ⏎ 2 ^ 128 = 340282366920938463463374607431768211456 Z:\Documents\python>