Python で入力検証を実行する

Vaibhhav Khetarpal 2023年1月30日
  1. ユーザー入力が Python で try...except ステートメントを使用して有効かどうかを確認する
  2. ユーザー入力が Python で isdigit() 関数を使用して有効かどうかを確認する
Python で入力検証を実行する

入力検証は、input() 関数からユーザーが提供した入力が有効であり、特定のケースまたはシナリオで受け入れ可能かどうかを確認するプロセスとして定義できます。

この記事では、ユーザー入力が Python で有効かどうかを確認する方法を学習します。

ユーザー入力が Python で try...except ステートメントを使用して有効かどうかを確認する

try...except ステートメントは、Python での例外処理の目的で使用されます。try...except ステートメントは 3つのブロックに分割されており、すべて異なる用途があります。

  • try ブロックには、エラーがないかテストするコードのクラスターが含まれています。
  • except ブロックは、例外を追加し、コードのエラーを処理するために使用されます。
  • finally ブロックには、実行する必要のあるステートメントが含まれています。try および except ブロックでは無視されます。

Python での入力検証を説明するために、Python の組み込み input() 関数を使用してユーザーが入力を求められるプログラムを取り上げます。

次のコードは、try...except ステートメントを実装して、ユーザー入力が Python で有効かどうかを確認します。

while True:
    try:
        dage = int(input("Enter your age: "))
    except ValueError:
        print("This is an unaccepted response, enter a valid value")
        continue
    else:
        break
if dage >= 21:
    print("You're the legal age to drink in India")
else:
    print("You're not the legal age to drink in India")

出力:

Enter your age: eight
This is an unaccepted response, enter a valid value
Enter your age: 8
You're not the legal age to drink in India

上記のコードでは、try ブロックに入力関数が含まれており、ユーザーが入力する値が int であるというパラメーターを設定しています。次に、except ブロックがエラーを処理します。Python を使用すると、コードのチャンクで必要な数の例外ブロックを定義できます。

出力には、int 値の代わりに他の値が入力された場合の except ブロックのエラーメッセージが表示されます。プログラムの後半は簡単で、if-else ステートメントを使用して、人が合法的な飲酒年齢にあるかどうかを確認します。

ユーザー入力が Python で isdigit() 関数を使用して有効かどうかを確認する

isdigit() 関数を使用して、入力で提供された値が数字(0〜9)であるかどうかを確認できます。文字列に数値の整数値のみが含まれている場合は、True 値を返します。浮動小数点数は考慮されません。

次のコードは、isdigit() 関数を使用するユーザー定義関数を実行して、ユーザー入力が Python で有効かどうかを確認します。

def check1(num):
    if num.strip().isdigit():
        print("The Input is Number")
    else:
        print("The Input is string")


x = input("Enter your age:")
check1(x)

出力:

Enter your age:18
The Input is Number

ユーザー定義関数は、受け取ったユーザー入力が数値か文字列かを確認するためだけに作成されます。

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

関連記事 - Python Input