Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 사용자 입력에 응답하기: if-elif-else와 while 루프 활용법

이 문제는 if-elif-else 조건문을 활용하면 손쉽게 해결할 수 있습니다. 또한, 사용자가 목록에 있는 유효한 옵션을 선택할 때까지 계속해서 입력을 요청하도록 만들려면 while 루프를 함께 사용하는 것이 좋습니다. 옵션이 유효하면 break 문으로 루프를 종료하고, 그렇지 않다면 올바른 값을 입력할 때까지 반복적으로 입력을 다시 요청합니다.

입력값은 정수(integer)로 처리해야 하므로, input() 함수가 반환하는 문자열을 int() 메서드를 사용해 정수형으로 형 변환(typecast)해 주어야 합니다.

예제 코드

아래 코드는 앞서 설명한 내용을 그대로 구현한 예제입니다.

print("Come-on in. Need help with any bags?")
while True:
    # 유효한 옵션이 입력될 때까지 반복하는 루프
    bag = int(input("(1)Yes (2)No Thanks (3)I'll get 'em later\nTYPE THE NUMBER OF YOUR RESPONSE: "))
    if bag == 1:
        print("You have chosen YES. We'll help with bags")
        break  # 옵션이 유효하므로 루프 종료
    elif bag == 2:
        print("Ok you don't want any help.")
        break
    elif bag == 3:
        print("Tell us, when you want the help")
        break
    else:
        print("Invalid Choice, Please select number from 1 to 3")

코드 동작 방식

while True:는 무한 루프를 생성하여, 사용자가 유효한 번호를 입력할 때까지 프로그램이 계속 입력을 기다리도록 합니다. 각 분기문에서는 입력된 값이 1, 2, 3 중 하나인지 차례대로 확인하고, 일치하는 경우 해당 안내 메시지를 출력한 뒤 break로 루프를 빠져나갑니다. 만약 1에서 3 사이의 숫자가 아닌 다른 값이 입력되면, 마지막 else 블록이 실행되어 "잘못된 선택"이라는 오류 메시지를 보여주고 루프가 다시 시작되어 사용자에게 재입력을 요청합니다.

이 패턴은 메뉴 선택 화면, 설문 응답 수집 등 사용자에게 제한된 선택지를 강제해야 하는 다양한 상황에서 널리 활용되는 기본적인 입력 검증(input validation) 기법입니다.