ブログなどの各種メディアではデータ型の確認方法は公開されていますが、
指定されたデータ型以外の入力を受け付けない書き方は公開されていません。
この記事では例外処理「try ~ except」で指定したデータ型以外は入力させない方法を紹介します。
目次
指定したデータ型しか入力させない例外処理
今回は、「整数値しか入力できないようし、整数値以外入力された場合に再入力させる」例外処理をさせてみます。
下が「try ~ except」を使用したサンプルコードです。
while True:
try:
number = int(input("Input interger number, please : "))
break
except ValueError:
print("No valid number. Try again.")
解説
1行目の「While文」で入力が正常に行われるまで実行します。
while True:
try:
number = int(input("Input interger number, please : "))
break
except ValueError:
print("No valid number. Try agein.")
5行目の「except ValueError」で入力された値が整数値以外の場合に例外とさせてます。
while True:
try:
number = int(input("Input interger number, please : "))
break
except ValueError:
print("No valid number. Try again.")
正常に整数値が入力された場合に4行目の「break」でWhile文を抜けます。
while True:
try:
number = int(input("Input interger number, please : "))
break
except ValueError:
print("No valid number. Try agein.")
下がサンプルプログラムです。
if __name__ == '__main__':
while True:
try:
number = int(input("Input interger number, please : "))
break
except ValueError:
print("No valid number. Try agein.")
print("Number is " + str(number))
# Input interger number, please : aaa
# No valid number. Try agein.
# Input interger number, please : 100.5
# No valid number. Try agein.
# Input interger number, please : 100
# Number is 100
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミングposted with ヨメレバ
Al Sweigart オライリージャパン 2017-06-03