사용자 입력(Input)과 화면 출력(Output): 프로그램과의 소통
1. 서론: 프로그램과 사용자의 대화
지금까지 우리는 파이썬 코드를 작성하고 실행하며, 변수에 데이터를 저장하고 연산하는 방법을 배웠습니다. 하지만 프로그램이 진정으로 유용해지려면, 단순히 정해진 작업을 수행하는 것을 넘어 사용자와 상호작용할 수 있어야 합니다. 사용자의 명령을 받아들이고, 그에 대한 결과를 보여주는 것이 바로 프로그램의 핵심적인 역할 중 하나입니다. 파이썬은 이러한 상호작용을 위해 input() 함수와 print() 함수라는 두 가지 강력한 도구를 제공합니다. print() 함수는 프로그램이 사용자에게 정보를 보여주는 ‘출력’ 기능을 담당하고, input() 함수는 사용자로부터 정보를 받아들이는 ‘입력’ 기능을 담당합니다. 이 챕터에서는 이 두 함수를 사용하여 여러분의 파이썬 프로그램이 사용자와 어떻게 대화할 수 있는지, 그리고 이 함수들을 더욱 효과적으로 활용하는 다양한 기법에 대해 깊이 있게 알아보겠습니다. 프로그램과 사용자의 원활한 소통은 여러분의 코드를 더욱 생동감 있게 만들 것입니다.
2. 화면 출력(Output): print() 함수
print() 함수는 파이썬에서 가장 기본적인 출력 함수입니다. 괄호 안에 전달된 내용을 화면(콘솔)에 출력하는 역할을 합니다. 이미 “Hello, World!” 예제에서 사용해 보았듯이, print() 함수는 매우 직관적이고 강력합니다.
2.1. 기본적인 사용법
print() 함수는 문자열, 숫자, 변수 등 다양한 종류의 데이터를 출력할 수 있습니다.
# 문자열 출력
print("안녕하세요, 파이썬!") # 출력: 안녕하세요, 파이썬!
# 숫자 출력
print(12345) # 출력: 12345
print(3.14) # 출력: 3.14
# 변수 출력
name = "김철수"
age = 20
print(name) # 출력: 김철수
print(age) # 출력: 20
# 여러 값 동시에 출력 (쉼표로 구분)
# 쉼표로 구분된 값들은 기본적으로 공백으로 구분되어 출력됩니다.
print("이름:", name, "나이:", age)
# 출력: 이름: 김철수 나이: 20
2.2. sep (Separator) 인자: 구분자 변경
print() 함수는 여러 값을 출력할 때 기본적으로 공백으로 구분합니다. sep 인자를 사용하면 이 구분자를 원하는 문자로 변경할 수 있습니다.
print("apple", "banana", "cherry") # 출력: apple banana cherry
print("apple", "banana", "cherry", sep=", ") # 출력: apple, banana, cherry
print("2023", "10", "26", sep="/") # 출력: 2023/10/26
2.3. end 인자: 출력 끝 문자 변경
print() 함수는 기본적으로 출력 후 줄 바꿈(\n)을 합니다. end 인자를 사용하면 출력의 끝에 오는 문자를 변경할 수 있습니다.
print("Hello", end=" ")
print("World!")
# 출력: Hello World!
print("Counting:", end=" ")
for i in range(1, 6):
print(i, end=" ")
print("\nDone!")
# 출력: Counting: 1 2 3 4 5
# Done!
2.4. f-string을 이용한 출력 (가장 권장)
이전 챕터에서 배운 f-string은 print() 함수와 함께 사용될 때 가장 강력한 문자열 포매팅 기능을 제공합니다. 변수 값을 문자열 안에 직접 삽입하여 가독성 높은 출력을 만들 수 있습니다.
product = "Laptop"
price = 1200000
print(f"상품명: {product}, 가격: {price:,}원")
# 출력: 상품명: Laptop, 가격: 1,200,000원 (숫자에 쉼표 추가)
score = 85.73
print(f"점수: {score:.2f}") # 출력: 점수: 85.73 (소수점 둘째 자리까지)
3. 사용자 입력(Input): input() 함수
input() 함수는 사용자로부터 키보드 입력을 받아들이는 역할을 합니다. input() 함수는 사용자로부터 입력받은 모든 내용을 ‘문자열(String)’ 형태로 반환합니다.
3.1. 기본적인 사용법
input() 함수는 괄호 안에 사용자에게 보여줄 프롬프트 메시지를 선택적으로 전달할 수 있습니다.
# 사용자로부터 이름 입력받기
user_name = input("당신의 이름은 무엇인가요? ")
print(f"안녕하세요, {user_name}님!")
# 사용자로부터 나이 입력받기
user_age = input("당신의 나이는 몇 살인가요? ")
print(f"당신은 {user_age}살이시군요.")
3.2. input() 함수의 반환 값은 항상 문자열
input() 함수가 반환하는 값은 사용자가 숫자를 입력했더라도 항상 문자열입니다. 따라서 입력받은 값을 숫자로 사용하려면 반드시 자료형 변환을 해주어야 합니다.
num1_str = input("첫 번째 숫자를 입력하세요: ") # 예: "10"
num2_str = input("두 번째 숫자를 입력하세요: ") # 예: "5"
# 문자열을 그대로 더하면 문자열 연결이 됩니다.
print(f"문자열 덧셈 결과: {num1_str + num2_str}") # 출력: 문자열 덧셈 결과: 105
# 숫자로 변환 후 덧셈
num1 = int(num1_str) # 문자열 "10"을 정수 10으로 변환
num2 = int(num2_str) # 문자열 "5"를 정수 5로 변환
print(f"숫자 덧셈 결과: {num1 + num2}") # 출력: 숫자 덧셈 결과: 15
# 실수로 변환할 경우 float() 사용
height_str = input("당신의 키는 몇 cm인가요? ") # 예: "175.5"
height = float(height_str)
print(f"당신의 키는 {height}cm 입니다.")
주의: int()나 float() 함수로 변환할 때, 입력된 문자열이 숫자로 변환될 수 없는 형태라면 ValueError가 발생합니다. (예: int("hello"))
4. print()와 input()을 활용한 간단한 프로그램 예제
이제 print()와 input() 함수를 활용하여 사용자와 상호작용하는 간단한 프로그램을 만들어 보겠습니다.
4.1. 간단한 계산기 프로그램
print("간단한 덧셈 계산기입니다.")
# 첫 번째 숫자 입력받기
num1_str = input("첫 번째 숫자를 입력하세요: ")
num1 = int(num1_str) # 정수로 변환
# 두 번째 숫자 입력받기
num2_str = input("두 번째 숫자를 입력하세요: ")
num2 = int(num2_str) # 정수로 변환
# 덧셈 결과 계산 및 출력
result = num1 + num2
print(f"두 숫자의 합은 {result}입니다.")
4.2. 자기소개 프로그램
print("안녕하세요! 당신에 대해 알려주세요.")
my_name = input("이름: ")
my_age = input("나이: ")
my_city = input("사는 도시: ")
print("\n--- 당신의 정보 ---")
print(f"이름: {my_name}")
print(f"나이: {my_age}세")
print(f"사는 도시: {my_city}")
print("-------------------")
print(f"만나서 반갑습니다, {my_name}님!")
5. 결론: 프로그램에 생명을 불어넣는 소통의 기술
이 챕터를 통해 여러분은 파이썬 프로그램이 사용자와 상호작용하는 가장 기본적인 방법인 print() 함수와 input() 함수에 대해 완벽하게 이해했습니다. print() 함수를 사용하여 다양한 형태의 데이터를 화면에 출력하고, sep와 end 인자를 통해 출력 방식을 제어하는 방법을 배웠습니다. 또한, input() 함수를 사용하여 사용자로부터 키보드 입력을 받고, 입력받은 문자열을 필요한 자료형으로 변환하는 중요성도 깨달았습니다.
사용자 입력과 화면 출력은 모든 대화형 프로그램의 핵심입니다. 이제 여러분은 단순히 정해진 코드를 실행하는 것을 넘어, 사용자와 소통하며 동적으로 동작하는 프로그램을 만들 수 있는 기반을 갖추게 되었습니다. 이는 여러분의 파이썬 프로그래밍 능력을 한 단계 더 끌어올리는 중요한 전환점이 될 것입니다.
다음 챕터에서는 파이썬의 ‘연산자(Operator)’에 대해 더 깊이 있게 탐구할 것입니다. 지금까지 배운 사칙연산자 외에도 다양한 종류의 연산자들이 있으며, 이들을 이해하는 것은 여러분의 코드를 더욱 강력하고 유연하게 만드는 데 필수적입니다. print()와 input() 함수를 활용하여 다양한 프로그램을 직접 만들어 보면서, 프로그램과의 소통에 익숙해지세요!
