コマンドライン(Mac:ターミナル、Windows:コマンドプロンプト)からPythonのシステムに値を渡す方法を紹介します。
コマンドラインやJupyter Notebookから値を入力
基本
input(表示するメッセージ)
choice = input("Please respond with 'yes' or 'no' [y/n]: ")
print(choice)
# y入力された値は文字列になりますので、数値の場合は変換する必要があります。
応用
YES or NO
- YES or NOとする場合、
.lower()で小文字に変換して選択肢を減らします。 - ‘n’, ‘no’とすることで、できるだけ入力ミスを減らします。
choice = input("Please respond with 'yes' or 'no' [y/n]: ").lower()
if choice in ['n', 'no']:
print("The end")
else:
print("Start!")
# nと入力した場合
# The end
# yと入力した場合
# Start!数値での選択肢
.isdecimal()で入力した値が数値のみか判定します。空欄もエラーになります。len(choice)で文字数を取得し、2文字以上であればエラーにします。
choice = input("Please respond with number [0-9]: ")
if choice.isdecimal() == False:
print("Error!")
elif len(choice) > 1:
print("Error!")
else:
print("Start!")
val = int(choice)
# 1または1と入力した場合
# Start!
# y、空欄、12と入力した場合
# Error!コマンドラインで引数を使って値を渡す
コマンドラインから、引数を与えてtest.pyを実行します。
以下の例では、引数は1となります。
python test.py 1
test.pyのプログラムと実行結果は以下のとおりです。
import sys print(sys.argv) # ['test.py', '1'] print(sys.argv[1]) # '1'
- sys.argvに配列として受け渡されます。
- 0番目は実行させたシステム名です。
- 引数はスペースを空けて複数個の引数を指定することができ、配列には1番目以降に順に挿入されます。
入力された値は文字列になりますので、数値の場合は変換する必要があります。

コメント