Help us understand the problem. What is going on with this article?

Pythonでキーボードから入力を行う

More than 1 year has passed since last update.

編集履歴

10/02 作成
10/03 input()文でのprint()文の削除

この記事について

というわけで入力します。
キーボードで入力すると言われると二種類の方法が思い浮かびます。

  • コマンドから呼び出す際の引数として渡す
  • プログラム実行中に入力を求められる

今回はその二つを実装してみようと思います。

コマンド上で入力

では早速プログラムを書いてみましょう。

input.py
import sys
args = sys.argv
i = 0
print(args)
for arg in args:
    print("第" + str(i) + '引数:' + arg)
    i += 1

sys.argvというのが引数を参照する関数です。
今回は「python .\input.py abc 1 def 2」というコマンドで呼び出して、引数を全て表示してみます。

result
E:\python> python .\input.py abc 1 def 2
['.\\input.py', 'abc', '1', 'def', '2']
第0引数:.\input.py
第1引数:abc
第2引数:1
第3引数:def
第4引数:2

argvの中には配列が入っていることが分かりました。
配列の0番目にはそのファイル名が保存されておりますのでご注意ください。
また、入力された値は数字あったとしても文字列として扱われている点も注意です。

プログラム実行中に入力を求める

続いてプログラムの実行途中で入力を求める場合の処理について書いていきます。

input.py
import sys
print('好きに入力してね!')
a = input()
print(a)

これでinput()のタイミングで入力が要求されます。

result
E:\python> python .\input.py abc 1 def 2
好きに入力してね!
abc
abc

最初のabcが入力されたものです。
因みにinput('好きに入力してね!>>')のように記述すると入力の前に>>が表示されてわかりやすくなります。
さらに前行のprint('好きに入力してね!')も不要になります

input.py
import sys
a = input('好きに入力してね!>>')
print(a)
result
 E:\python> python .\input.py abc 1 def 2
好きに入力してね!>>123
123

以上需要があるかわからない記事でした。
ありがとうございました。

yokotate
専門学校からなんとなくIT企業に入社した万年素人SE(自称)。Pythonは業務で使ってないのに業務で使ってる言語よりも使っている時間が長い気がするのが最近の悩み。 最近はAI系の技術に興味を持ちつつも日々自分の基礎学力無さに嘆いている。 書く内容はほぼ初心者向け。投稿する記事の内容は個人の意見であり、所属する企業の見解を代表するものではありません。
https://github.com/yokotate
japan-systems
「2019年に50周年を迎えたIT企業です。最先端の技術により全国の企業、官公庁、自治体に多くの実績があります。」
https://www.japan-systems.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away