Python プログラミング

[Python] 例外処理で指定のデータ型以外を入力させない

2018年7月2日

こんにちは!シミダイ(@shimidai2100)です。

ブログなどの各種メディアではデータ型の確認方法は公開されていますが、

指定されたデータ型以外の入力を受け付けない書き方は公開されていません。

この記事では例外処理「try ~ except」で指定したデータ型以外は入力させない方法を紹介します。


指定したデータ型しか入力させない例外処理

今回は、「整数値しか入力できないようし、整数値以外入力された場合に再入力させる」例外処理をさせてみます。

下が「try ~ except」を使用したサンプルコードです。

while True:
    try:
        number = int(input("Input interger number, please : "))
        break
    except ValueError:
        print("No valid number. Try agein.")

解説

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 agein.")

正常に整数値が入力された場合に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, プログラミング

Copyright© shimidai2100 , 2020 All Rights Reserved.