プログラムの実行時にコマンドライン引数と呼ばれる値を渡して,その値を利用するプログラムを作成しよう.たとえば 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(f"{x}^{y} = {z}")
上のプログラムを実行すると,次のようになります.
(base) C:\Users\rinsaka\Documents\python>python power.py ⏎ 引数を整数で2個指定してください (base) C:\Users\rinsaka\Documents\python>python power.py 2 ⏎ 引数が足りません。2個指定してください (base) C:\Users\rinsaka\Documents\python>python power.py 2 10 20 ⏎ 引数が多すぎます。2個指定してください (base) C:\Users\rinsaka\Documents\python>python power.py 2 10 ⏎ 2^10 = 1024 (base) C:\Users\rinsaka\Documents\python>python power.py 2 128 ⏎ 2^128 = 340282366920938463463374607431768211456 (base) C:\Users\rinsaka\Documents\python>python power.py 2 1000 ⏎ 2^1000 = 10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376 (base) C:\Users\rinsaka\Documents\python>