ホームページ > バックエンド開発 > Python チュートリアル > Python で有効なユーザー入力を確認するにはどうすればよいですか?

Python で有効なユーザー入力を確認するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-02 17:01:40
オリジナル
301 人が閲覧しました

How to Ensure Valid User Input in Python?

受信するまで有効なユーザー入力を要求する

ユーザー入力を要求するときは、クラッシュしたり間違った値を受け入れたりするのではなく、無効な応答を適切に処理することが重要です。次の手法により、有効な入力が確実に取得されます。

例外入力の Try/Except を実行

解析できない特定の入力をキャッチするには、try/Except を使用します。例:

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Sorry, that's not a valid age.")
        continue
    break
ログイン後にコピー

追加ルールのカスタム検証

場合によっては、解析できる入力が特定の基準を満たさない場合があります。カスタム検証ロジックを追加して、特定の値を拒否できます。

while True:
    data = input("Enter a positive number: ")
    if int(data) < 0:
        print("Invalid input. Please enter a positive number.")
        continue
    break
ログイン後にコピー

例外処理とカスタム検証の組み合わせ

両方の手法を組み合わせて、無効な解析ルールとカスタム検証ルールの両方を処理します。 :

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Sorry, that's not a valid age.")
        continue
    if age < 0:
        print("Invalid age. Please enter a positive number.")
        continue
    break
ログイン後にコピー

でのカプセル化関数

カスタム入力検証ロジックを再利用するには、それを関数にカプセル化します。

def get_positive_age():
    while True:
        try:
            age = int(input("Please enter your age: "))
        except ValueError:
            print("Sorry, that's not a valid age.")
            continue
        if age < 0:
            print("Invalid age. Please enter a positive number.")
            continue
        return age
ログイン後にコピー

高度な入力サニタイズ

さまざまな検証を処理するためのより汎用的な入力関数を作成します。シナリオ:

def get_valid_input(prompt, type_=None, min_=None, max_=None, range_=None):
    while True:
        try:
            value = type_(input(prompt))
        except ValueError:
            print(f"Invalid input type. Expected {type_.__name__}.")
            continue
        if max_ is not None and value > max_:
            print(f"Value must be less than or equal to {max_}.")
            continue
        if min_ is not None and value < min_:
            print(f"Value must be greater than or equal to {min_}.")
            continue
        if range_ is not None and value not in range_:
            template = "Value must be {}."
            if len(range_) == 1:
                print(template.format(*range_))
            else:
                expected = " or ".join((
                    ", ".join(str(x) for x in range_[:-1]),
                    str(range_[-1])
                ))
                print(template.format(expected))
        else:
            return value
ログイン後にコピー

この関数を使用すると、ユーザー入力のデータ型、範囲、その他の制約を指定できます。

以上がPython で有効なユーザー入力を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート