Python을 배워보자/2. 기본 문법

파이썬 사용자 입력 받기 (input())

_Blue_Sky_ 2024. 9. 20. 15:36
728x90
728x90

파이썬 사용자 입력 받기 (input()) 심층 분석: 다양한 활용법과 주의사항

파이썬에서 사용자 입력을 받는 가장 기본적인 방법은 input() 함수를 사용하는 것입니다. 이 함수는 사용자가 키보드로 입력한 값을 문자열 형태로 반환합니다. 간단한 프로그램부터 복잡한 인터랙티브 프로그램까지, 사용자 입력은 프로그램의 유연성을 높이는 데 필수적인 요소입니다.

기본 사용법

name = input("이름을 입력하세요: ")
print("안녕하세요,", name, "님!")

위 코드는 사용자에게 이름을 입력하도록 요청하고, 입력받은 이름을 출력하는 간단한 예시입니다.

  • input("이름을 입력하세요: "): 사용자에게 입력을 요청하는 메시지를 표시하고, 사용자가 입력한 값을 문자열로 반환합니다.
  • name =: 반환된 문자열을 변수 name에 저장합니다.
728x90

다양한 활용법

  • 숫자 입력: input() 함수는 기본적으로 문자열을 반환하므로, 숫자를 입력받으려면 형 변환이 필요합니다.
    age = int(input("나이를 입력하세요: "))
    print("당신은", age, "살이군요.")
    
    • int(): 문자열을 정수로 변환합니다.
    • float(): 문자열을 실수로 변환합니다.
  • 여러 값 입력: 공백으로 구분된 여러 값을 한 번에 입력받을 수 있습니다.
    numbers = input("숫자 여러 개를 입력하세요 (공백으로 구분): ")
    numbers_list = numbers.split()
    print(numbers_list)
    
    • split(): 문자열을 공백을 기준으로 나누어 리스트로 반환합니다.
  • 특정 형식의 입력: 정규 표현식을 사용하여 특정 형식의 입력만 허용할 수 있습니다.
  • 파일에서 입력: sys 모듈의 stdin을 사용하여 파일에서 입력을 받을 수 있습니다.
  • GUI 프로그램에서 입력: Tkinter, PyQt 등의 GUI 라이브러리를 사용하여 그래픽 인터페이스를 통해 입력을 받을 수 있습니다.

주의사항

  • 형 변환 오류: int()float() 함수에 문자열 형태의 숫자가 아닌 값을 넣으면 ValueError가 발생합니다. 사용자가 올바른 값을 입력하도록 유도하는 에러 처리가 필요합니다.
  • 보안: 사용자 입력에 특수 문자나 악성 코드가 포함될 수 있으므로, 입력값을 적절히 검증하고 필터링해야 합니다.
  • 입력 길이 제한: 너무 긴 입력을 허용하면 메모리 오버플로우가 발생할 수 있습니다. 입력 길이를 제한하는 것이 좋습니다.

실제 예시

def calculate_area(shape):
    if shape == "circle":
        radius = float(input("반지름을 입력하세요: "))
        area = 3.14 * radius**2
    elif shape == "rectangle":
        width = float(input("가로를 입력하세요: "))
        height = float(input("세로를 입력하세요: "))
        area = width * height
    else:
        print("잘못된 도형입니다.")
        return

    print("면적은", area, "입니다.")

shape = input("도형을 선택하세요 (circle, rectangle): ")
calculate_area(shape)

위 코드는 사용자가 입력한 도형에 따라 면적을 계산하는 프로그램입니다.

결론

input() 함수는 파이썬에서 사용자와 상호 작용하는 데 필수적인 도구입니다. 다양한 활용법과 주의사항을 숙지하여 더욱 강력하고 안전한 프로그램을 만들 수 있습니다.

추가적으로 다룰 수 있는 내용

  • 입력 유효성 검사: 사용자가 올바른 값을 입력했는지 확인하는 방법
  • 입력값 필터링: 특정 문자나 패턴을 제거하는 방법
  • 입력 제한: 최대/최소 길이, 허용되는 문자 범위 등을 설정하는 방법
  • 반복적인 입력: while 문을 사용하여 여러 번 입력받는 방법
  • 명령줄 인수: sys.argv를 사용하여 프로그램 실행 시 전달되는 인수를 처리하는 방법
728x90
728x90