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

プログラムでのユーザー入力が有効であることを確認するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-27 06:01:09632ブラウズ

How Can I Ensure Valid User Input in My Program?

有効な応答が提供されるまでユーザー入力を要求する

プログラミングでは、以降の操作を続行する前にユーザー入力が有効であることを確認することが重要です。無効なデータが受け入れられると、不正確な結果が生じたり、プログラムがクラッシュしたりする可能性があります。ユーザー入力の検証を処理し、エラーを防ぐための効果的な手法を検討してみましょう。

例外とループ

1 つのアプローチは、try ブロックとException ブロックを使用して、次の場合に発生する可能性のあるエラーをキャッチすることです。ユーザー入力を解析しています。入力解析操作を while ループ内にラップすると、目的の条件を満たすまで入力を継続的に要求できます。

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Sorry, I didn't understand that.")
        continue
    else:
        break

カスタム検証ロジック

さらに例外処理に加えて、独自の検証ルールを実装して入力をチェックできます。たとえば、負の値や特定の範囲外の値を拒否できます。

while True:
    data = input("Pick an answer from A to D:")
    if data.lower() not in ('a', 'b', 'c', 'd'):
        print("Not an appropriate choice.")
    else:
        break

すべてのケースのエラー処理

包括的な入力検証のために、以下を組み合わせることができます。単一ループ内のカスタム ルールによる例外処理。これにより、解析エラーと無効な値の両方が確実に検出され、適切に処理されます。

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Sorry, I didn't understand that.")
        continue

    if age < 0:
        print("Sorry, your response must not be negative.")
        continue
    else:
        break

カプセル化と再利用可能な関数

ユーザー入力の検証が頻繁に必要な場合、関連するコードを別の関数にカプセル化すると有益です。これにより、コードの再利用が可能になり、入力収集プロセスが簡素化されます。

def get_non_negative_int(prompt):
    while True:
        value = int(input(prompt))
        if value >= 0:
            break
    return value

age = get_non_negative_int("Please enter your age: ")

拡張性と汎用入力検証

概念をさらに拡張することで、高度な入力検証を作成できます。幅広い範囲をカバーする多彩な入力検証機能

def sanitised_input(prompt, type_=None, min_=None, max_=None, range_=None):
    while True:
        ui = input(prompt)
        try:
            if type_ is not None:
                ui = type_(ui)
        except ValueError:
            continue

        # Perform further validation checks and return valid input if all criteria are met.

一般的な落とし穴とベスト プラクティス

  • 冗長な入力ステートメントを避ける: 検証を行うために複数の入力ステートメントを使用することは、プログラミング スタイルが不適切なため、次のような可能性が高くなります。エラー。
  • 再帰を控える: 再帰は入力検証にとって魅力的に見えるかもしれませんが、特に無効な入力が多すぎるとスタック オーバーフローを引き起こす可能性があります。
  • 優先効率的な処理のためのループ: while ループを使用すると、有効な応答が返されるまで入力を継続的に要求することにより、効率的なエラー処理が可能になります。
を受信しました。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。