有効な応答が提供されるまでユーザー入力を要求する
プログラミングでは、以降の操作を続行する前にユーザー入力が有効であることを確認することが重要です。無効なデータが受け入れられると、不正確な結果が生じたり、プログラムがクラッシュしたりする可能性があります。ユーザー入力の検証を処理し、エラーを防ぐための効果的な手法を検討してみましょう。
例外とループ
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.
一般的な落とし穴とベスト プラクティス
以上がプログラムでのユーザー入力が有効であることを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。