> 백엔드 개발 > 파이썬 튜토리얼 > 내 프로그램이 잘못된 사용자 입력을 정상적으로 처리하는지 어떻게 확인할 수 있나요?

내 프로그램이 잘못된 사용자 입력을 정상적으로 처리하는지 어떻게 확인할 수 있나요?

Linda Hamilton
풀어 주다: 2024-12-24 14:50:11
원래의
743명이 탐색했습니다.

How Can I Ensure My Program Handles Invalid User Input Gracefully?

유효한 응답이 제공될 때까지 사용자 입력 요청

문제

입력 검증은 사용자에 의존하는 프로그램에서 정확한 데이터 수집을 보장하는 데 중요합니다. 상호 작용. 그러나 예상치 못한 데이터나 유효하지 않은 데이터를 처리할 때는 사용자 입력의 유효성을 검사하는 것이 어려울 수 있습니다. 이로 인해 프로그램이 충돌하거나 잘못된 결과가 발생할 수 있습니다.

해결책 1: 예외 처리가 포함된 루프

가장 일반적인 접근 방식은 try 및 Except 블록과 함께 while 루프를 사용하여 구문 분석 시 발생한 예외를 처리하는 것입니다. 입력. 예를 들면 다음과 같습니다.

while True:
    try:
        age = int(input("Please enter your age: "))
    except ValueError:
        print("Invalid input. Please enter a valid age:")
        continue
    else:
        break
로그인 후 복사

솔루션 2: 사용자 정의 유효성 검사를 사용한 루프

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
로그인 후 복사

해결책 3: 예외 처리와 사용자 지정 유효성 검사 결합

두 솔루션을 결합하면 다음에 대한 유연성이 제공됩니다. 다양한 검증 요구 사항 관리:

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
로그인 후 복사

해결책 4: 재사용 가능한 입력 함수

여러 입력을 일관되게 검증해야 하는 경우 재사용 가능한 함수 생성을 고려하세요.

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
로그인 후 복사

일반적인 함정 방지

  • 중복 입력 명령문: 여러 입력 호출 대신 while True 및 루프를 사용합니다.
  • 입력 유효성 검사를 위한 재귀 사용: 이 접근 방식은 스택 오버플로로 이어질 수 있습니다. 루프를 고수하세요.

결론

이러한 기술을 구현하면 프로그램이 사용자 입력을 원활하게 처리하고 충돌을 방지하며 정확한 데이터를 수집하도록 할 수 있습니다.

위 내용은 내 프로그램이 잘못된 사용자 입력을 정상적으로 처리하는지 어떻게 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿