ホームページ >バックエンド開発 >Python チュートリアル >プログラムが無効なユーザー入力を適切に処理できるようにするにはどうすればよいですか?
ユーザーに依存するプログラムで正確なデータ収集を保証するには、入力検証が重要です交流。ただし、予期しないデータや無効なデータを扱う場合、ユーザー入力の検証が困難になることがあります。これにより、プログラムのクラッシュや不正な結果が発生する可能性があります。
最も一般的なアプローチは、try ブロックとException ブロックを含む while ループを使用して、解析時に発生した例外を処理することです。入力。例:
while True: try: age = int(input("Please enter your age: ")) except ValueError: print("Invalid input. Please enter a valid age:") continue else: break
Python で処理できる範囲を超えてより具体的な検証が必要な場合は、カスタム ロジックを実装できます:
while True: data = input("Please enter a loud message (must be all caps): ") if not data.isupper(): print("Input must be all caps. Please enter a loud message:") continue else: break
両方を組み合わせるソリューションは、さまざまな検証要件を管理するための柔軟性を提供します:
while True: try: age = int(input("Please enter your age: ")) except ValueError: print("Invalid input. Please enter a valid age:") continue if age < 0: print("Age cannot be negative. Please enter a valid age:") continue else: break
複数の入力を一貫して検証する必要がある場合は、再利用可能な関数の作成を検討してください:
def get_valid_input(prompt, type_=int, min_=None, max_=None, range_=None): while True: try: value = type_(input(prompt)) except ValueError: print("Invalid input. Please enter a valid value:") continue if min_ is not None and value < min_: print("Value must be greater than or equal to {}. Please enter a valid value:".format(min_)) continue elif max_ is not None and value > max_: print("Value must be less than or equal to {}. Please enter a valid value:".format(max_)) continue elif range_ is not None and value not in range_: print("Value must be in the range {}. Please enter a valid value:".format(range_)) continue else: return value
これらの手法を実装すると、プログラムがユーザー入力を適切に処理し、クラッシュを防ぎ、正確なデータを収集できるようになります。
以上がプログラムが無効なユーザー入力を適切に処理できるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。