おぼえがき

過ちては則ち改むるにうんぬんかんぬん

input関数について(Python)

f:id:feci:20210726231508j:plain

Python3

 

Python3.8.5でのinput関数について。

#①戻り値をint型に修正しないパターン
while True:
  word = input('入力してね:')
  if word == 100:
    break
  print('まだ足りない')


#②戻り値をint型に修正したパターン
while True:
  word = input('入力してね:')
  num = int(word)
  if num == 100:
    break
  print('まだ足りない')


#③戻り値がstr型のままでもOKなパターン
while True:
  word = input('入力してね:')
  if word == '100':
    break
  print('まだ足りない')

 

input関数では、実行するとターミナルに「入力してね:」と表示され、変数wordに格納する値を自由に入力することができます。

そしてその入力指示は、下の行のif文のword==100の条件を満たさないかぎり、延々と続きます。

 

ちなみに、input関数の戻り値(返り値)はすべてString型(str型)です。

なので①のプログラムではターミナルに何回半角数字で100と入力しても、画面上には「まだ足りない」と表示されて、入力を延々と要求され続けます。

 

ちなみにこの状態になると、exit()ではこのプログラムを終了させることができません。

ターミナルを一度削除するか、Ctrl+zを入力してからエンターキーを押すか、^Zと入力してエンターキーを押さないと、このプログラムを終了させることはできません。

 

 

②のプログラムでは、input関数で入力された変数wordに格納された戻り値を、Integer型(int型)に変換してから変数numに格納しています。

これならば、入力された値が全角の100であっても半角の100であっても、if文のnum==100の条件を満たすことができます。

 

 

③のプログラムでは、半角の100ではif文のword=='100'の条件を満たすことができますが、全角数字の100では条件を満たすことができません。

 

 

以上です。