目次
1. 시작하기
Python으로 프로그램을 만들 때, 사용자로부터 입력을 받아 처리하는 “표준 입력”은 매우 중요합니다. 특히input()
함수를 사용하여 키보드로부터 데이터를 얻음으로써, 사용자와의 상호작용이 가능해집니다. 이 기사에서는 Python 초보자를 위해 표준 입력의 기본 사용법부터 응용 방법까지를 구체적인 예와 함께 설명합니다. 간단한 프로그램부터 응용적인 처리 방법까지 순차적으로 배울 수 있는 내용입니다.2. Python의 표준 입력 기본 사용법
2.1 input()
함수란?
input()
함수는 사용자의 입력을 받아 문자열로 반환하는 함수입니다. 예를 들어, 다음 코드에서 사용자의 이름을 얻어 출력합니다。name = input("이름을 입력하세요: ")
print(f"안녕하세요, {name}님!")
이 코드에서는 input()
으로 입력된 이름을 name
에 저장하고, 인사문을 출력합니다。2.2 숫자 데이터 입력 및 형 변환
input()
으로 얻어지는 데이터는 문자열이므로, 숫자로 다루고 싶을 경우 int()
나 float()
함수를 사용해 형 변환을 수행합니다。age = int(input("나이를 입력하세요: "))
print(f"당신은 {age}세이군요.")
이 예에서는 문자열을 정수로 변환하고, 나이를 숫자로 출력합니다。
3. 여러 줄 표준 입력 처리
3.1 여러 줄 문자열 입력
여러 줄 입력을 받고 싶을 경우,for
루프와 리스트 내포 표기법을 사용하면 효율적입니다. 예를 들어, 사용자에게 3개의 서로 다른 단어를 입력받는 경우의 코드는 다음과 같습니다.words = [input(f"{i+1}번째 단어를 입력해주세요: ") for i in range(3)]
print(f"입력된 단어: {words}")
이 코드에서는 3줄 분량의 입력을 리스트에 저장하고, 출력합니다.3.2 공백 구분으로 여러 입력
한 줄에 여러 데이터를 입력할 때는,split()
함수를 사용하여 공백 구분으로 할 수 있습니다. 다음 예에서는, 사용자에게 숫자를 공백으로 구분하여 입력받고, 이를 정수로 변환합니다.numbers = list(map(int, input("숫자를 공백으로 구분하여 입력해주세요: ").split()))
print(f"입력된 숫자: {numbers}")
여기서는 map()
함수를 사용하여, 입력된 숫자를 정수형으로 변환하고 있습니다. split()
으로 구분된 입력을 효율적으로 리스트에 저장하고 있습니다.4. 표준 입력의 응용: 파일 및 바이너리 데이터 처리
4.1 sys.stdin
을 이용한 표준 입력 처리
sys.stdin
을 사용하면, 표준 입력으로부터 데이터를 직접 읽어올 수 있습니다. 대량의 텍스트 데이터나, 커맨드 라인 인수로 전달된 파일 내용을 표준 입력으로 다룰 때 유용합니다.import sys
data = sys.stdin.read()
print(f"받은 데이터: {data}")
이 코드에서는 표준 입력으로부터 전체 데이터를 읽어와 출력합니다.4.2 바이너리 데이터의 간단한 처리
sys.stdin.buffer
를 사용함으로써, 바이너리 데이터를 직접 처리할 수 있습니다. 이는 이미지 데이터나 바이너리 형식 파일을 다룰 때 유효합니다.import sys
binary_data = sys.stdin.buffer.read()
print(binary_data)
이 코드에서는 표준 입력으로부터 바이너리 데이터를 읽어와 그대로 출력합니다.5. 실용적인 사용 사례: 표준 입력을 이용한 문제 해결
5.1 표준 입력을 이용한 평균값 계산 프로그램
아래 프로그램은 표준 입력으로부터 정수를 받아 그 평균값을 계산하여 출력합니다. 이러한 처리는 알고리즘 대회 프로그래밍이나 데이터 처리에서 자주 사용됩니다.N = int(input("입력할 수의 개수를 지정해주세요: "))
numbers = list(map(int, input("값을 공백으로 구분하여 입력해주세요: ").split()))
average = sum(numbers) / N
print(f"평균값은 {average} 입니다.")
이 프로그램은 먼저 수의 개수를 받아, 이어서 공백 구분으로 입력된 값을 리스트로 처리하여 평균값을 계산합니다.5.2 입력이 종료될 때까지 데이터를 받는 프로그램
사용자가 빈 줄을 입력할 때까지 데이터를 계속 받아들이는 프로그램입니다. 특정 종료 조건을 설정함으로써 장기간의 입력 데이터 처리가 가능해집니다.data = []
while True:
line = input()
if line == "":
break
data.append(line)
print("입력된 데이터: ", data)
이 예에서는 빈 줄이 입력될 때까지 데이터를 계속 받아들이고, 최종적으로 모든 데이터를 출력합니다.6. 자주 발생하는 오류와 그 대처법
6.1 ValueError
의 대처법
숫자 입력 시, 사용자가 실수로 문자열을 입력하면ValueError
가 발생합니다. 이 오류를 회피하기 위해서는 입력값을 검증하는 코드를 추가할 필요가 있습니다.try:
age = int(input("나이를 입력해주세요: "))
except ValueError:
print("잘못된 입력입니다. 숫자를 입력해주세요.")
6.2 EOFError
의 대처법
여러 줄 입력을 받을 때, 표준 입력의 종료를 나타내는 EOF(End of File)오류가 발생할 경우가 있습니다. 이를 회피하려면 종료 조건을 적절히 설정하는 것이 중요합니다.import sys
for line in sys.stdin:
if line.strip() == "":
break
print(line.strip())
7. 요약
Python에서 표준 입력을 사용하면 사용자와의 상호작용을 쉽게 구현할 수 있으며, 보다 고급 프로그램을 만들 수 있게 됩니다. 기본적인input()
함수부터, 파일이나 바이너리 데이터의 처리까지, 다양한 방법을 배웠습니다. 표준 입력의 활용 방법을 이해하고 실천함으로써, 프로그램의 유연성과 효율성이 향상됩니다.