콘텐츠로 이동

04. 입출력 (소통하기)

"혼자 떠드는 프로그램은 재미없습니다. 사용자에게 말을 걸고(input), 대답을 들려주는(print) 법을 배웁니다."

1. 화면에 보여주기 (print)

가장 많이 쓴 명령어죠? 괄호 안의 내용을 화면에 출력합니다. 개발자에게는 "내 코드가 잘 돌아가는지 확인하는 청진기(Debugging)" 역할도 합니다.

print("Hello")
print(10 + 20)

user_name = "봉이"
# f-string: 문자열 안에 변수 넣기 (가장 추천하는 방법!)
print(f"안녕하세요, {user_name}님!") 

2. 키보드로 입력받기 (input)

사용자가 키보드로 뭔가를 칠 때까지 프로그램이 잠시 멈추고 기다립니다. 엔터 키를 누르면 입력된 내용이 데이터가 되어 변수에 들어갑니다.

name = input("이름이 뭐니? ")  # 여기서 커서가 깜빡이며 대기함
print(f"반가워, {name}!")

⚠️ 주의: 모든 입력은 '문자열'이다!

input()으로 들어온 데이터는 무조건 문자열(String) 취급을 받습니다. 숫자 10을 쳐도 컴퓨터는 글자 "10"으로 받아들입니다.

graph LR
    User["👤 사용자"] -->|"키보드: 20"| Input["input 함수"]
    Input -->|"문자열 '20'"| Var["변수 age"]
    Var -->|"🚨 에러! ('20'+1)"| Error["계산 불가"]

    Var -->|"int 변환"| RealNum["숫자 20"]
    RealNum -->|"성공! (20+1)"| Result["21"]

    style User fill:#e1f5fe,stroke:#01579b
    style Input fill:#fff9c4,stroke:#fbc02d
    style Error fill:#ffcdd2,stroke:#c62828
    style Result fill:#e8f5e9,stroke:#2e7d32
age = input("몇 살? ")  # 사용자가 20 입력

# print(age + 1)  -> 🚨 에러 발생! ("20" + 1 은 불가능)

real_age = int(age) # 숫자로 변환 (Casting)
print(real_age + 1) # 21 (성공)

3. 실전 예제 (계산기 만들기)

배운 내용을 합쳐서 아주 간단한 계산기를 만들어 봅시다.

# 1. 입력 받기
str_num1 = input("첫 번째 숫자를 입력하세요: ")
str_num2 = input("두 번째 숫자를 입력하세요: ")

# 2. 숫자로 바꾸기
num1 = int(str_num1)
num2 = int(str_num2)

# 3. 계산하고 출력하기
print(f"두 숫자의 합은 {num1 + num2}입니다.")

AI와 협업 포인트: 예외 처리

위 코드에 숫자가 아니라 '가나다'를 입력하면 프로그램이 멈춥니다(ValueError). 초보자가 이걸 다 막기는 어렵습니다. 이럴 때 AI에게 이렇게 시키세요.

> **"사용자가 숫자가 아닌 문자를 입력했을 때, 에러가 나지 않고 '숫자만 입력해주세요'라고 다시 물어보게 코드를 수정해줘."** (try-except 구문을 짜줄 것입니다.)