Skip to Content
💻 코리아IT아카데미 신촌 - 프로그래밍 학습 자료

Topic 2: 출력과 입력 - 컴퓨터와 대화하기 💬

🎯 학습 목표

print 함수의 다양한 기능을 익히고 input 함수를 활용하여 사용자와 상호작용하는 프로그램을 만들 수 있습니다.

🔄 일방향에서 양방향으로

지금까지의 학습

Hello World에서 여러분은 컴퓨터에게 말하는 법을 배웠습니다. 하지만 이것은 일방적인 출력이었습니다.

이번 토픽에서 배울 것

이제 진정한 대화를 시작합니다. 컴퓨터가 여러분의 입력을 받고, 그에 맞는 반응을 보이는 상호작용하는 프로그램을 만들어보겠습니다.

🖨️ 출력 심화 - print 함수 완전 활용

기본 출력 복습

print("안녕하세요!")

더 다양한 출력 방법

1. 여러 값을 한 번에 출력하기

print("이름:", "김파이썬") print("나이:", 20) print("취미:", "코딩", "게임", "독서")

출력 결과:

이름: 김파이썬 나이: 20 취미: 코딩 게임 독서

2. 구분자(separator) 바꾸기

print("사과", "바나나", "포도") # 기본 (공백으로 구분) print("사과", "바나나", "포도", sep=", ") # 쉼표로 구분 print("사과", "바나나", "포도", sep=" | ") # 바(|)로 구분 print("사과", "바나나", "포도", sep="") # 구분자 없음

출력 결과:

사과 바나나 포도 사과, 바나나, 포도 사과 | 바나나 | 포도 사과바나나포도

3. 줄바꿈 제어하기

print("첫 번째 줄") print("두 번째 줄") print("세 번째 줄", end="") print("네 번째 줄")

출력 결과:

첫 번째 줄 두 번째 줄 세 번째 줄네 번째 줄

4. 아름다운 형태 만들기

print("=" * 30) print(" 🐍 파이썬 학습 일기 🐍") print("=" * 30) print("오늘의 학습: 입출력 함수") print("기분: 최고! 😊") print("=" * 30)

출력 결과:

============================== 🐍 파이썬 학습 일기 🐍 ============================== 오늘의 학습: 입출력 함수 기분: 최고! 😊 ==============================

🎤 입력 처리 - input 함수로 사용자와 소통

기본 입력 받기

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

실행 과정:

  1. 프로그램이 “이름을 입력하세요: “를 출력
  2. 사용자가 키보드로 입력 (예: “김파이썬”)
  3. Enter 키를 누르면 입력 완료
  4. “안녕하세요, 김파이썬 님!” 출력

🔄 input() 함수의 중요한 특징

⚠️ 매우 중요: input() 함수로 받은 모든 값은 **항상 문자열(string)**입니다!

# 사용자가 "20"을 입력했다고 가정 age = input("나이를 입력하세요: ") print(f"입력받은 값: {age}") # "20" (문자열) print(f"타입: {type(age)}") # <class 'str'> # 숫자로 계산하려면 반드시 변환해야 함 age_number = int(age) # 문자열을 정수로 변환 next_year = age_number + 1 # 이제 계산 가능 print(f"내년 나이: {next_year}") # 21

📊 타입 변환 마스터하기

1. 문자열 → 정수 변환

text_number = input("숫자 입력: ") # "123" (문자열) real_number = int(text_number) # 123 (정수)

2. 문자열 → 실수 변환

text_decimal = input("소수 입력: ") # "3.14" (문자열) real_decimal = float(text_decimal) # 3.14 (실수)

3. 한 번에 변환하기 (권장 방법)

age = int(input("나이: ")) # 입력과 동시에 정수로 변환 height = float(input("키(cm): ")) # 입력과 동시에 실수로 변환

🚨 타입 변환 시 주의사항

# ❌ 잘못된 입력으로 인한 오류 text = "안녕하세요" number = int(text) # ValueError! 숫자가 아닌 문자열은 변환 불가 # ❌ 소수점이 있는 문자열을 정수로 변환 decimal_text = "3.14" integer = int(decimal_text) # ValueError! 소수점 문자열은 int()로 변환 불가 # ✅ 올바른 방법 decimal_text = "3.14" integer = int(float(decimal_text)) # 3 (소수점 버림)

기억하세요: 사용자 입력은 예측하기 어렵습니다. 항상 올바른 형태의 입력인지 확인하는 습관을 기르세요!

다양한 입력 활용

예제 1: 개인정보 수집기

print("=" * 40) print(" 자기소개 프로그램") print("=" * 40) name = input("이름: ") age = input("나이: ") hobby = input("취미: ") dream = input("꿈: ") print("\n" + "=" * 40) print(" 입력하신 정보") print("=" * 40) print(f"이름: {name}") print(f"나이: {age}세") print(f"취미: {hobby}") print(f"꿈: {dream}") print("=" * 40) print("입력해주셔서 감사합니다! 😊")

f-string 설명: f"이름: {name}"은 문자열 안에 변수 값을 넣는 현대적인 방법입니다. 중괄호 {} 안에 변수명을 쓰면 그 값이 들어갑니다.

예제 2: 간단한 계산기

print("🧮 간단한 덧셈 계산기") print("-" * 25) num1 = input("첫 번째 숫자: ") num2 = input("두 번째 숫자: ") # 문자열을 숫자로 변환 result = int(num1) + int(num2) print(f"\n계산 결과") print(f"{num1} + {num2} = {result}")

중요: input()으로 받은 값은 항상 **문자열(string)**입니다. 숫자로 계산하려면 int()float()으로 변환해야 합니다.

예제 3: 대화형 챗봇

print("🤖 안녕! 나는 파이봇이야!") print("너와 대화하고 싶어!") name = input("🤖 너의 이름이 뭐야? ") print(f"🤖 {name}! 정말 좋은 이름이네!") mood = input("🤖 오늘 기분은 어때? ") print(f"🤖 {mood}구나! 나도 오늘 기분이 좋아!") hobby = input("🤖 취미가 뭐야? ") print(f"🤖 와! {hobby}! 정말 멋진 취미네!") print(f"🤖 {name}, 너와 대화해서 정말 즐거웠어! 👋")

🚨 자주 발생하는 실수와 해결법

실수 1: 숫자 계산 오류

# ❌ 틀린 예 num1 = input("숫자 입력: ") # "5" (문자열) num2 = input("숫자 입력: ") # "3" (문자열) result = num1 + num2 # "53" (문자열 연결) # ✅ 올바른 예 num1 = int(input("숫자 입력: ")) # 5 (정수) num2 = int(input("숫자 입력: ")) # 3 (정수) result = num1 + num2 # 8 (숫자 계산)

실수 2: f-string 문법 오류

# ❌ 틀린 예 name = "김파이썬" print("안녕하세요, {name}님!") # f가 없음 # ✅ 올바른 예 name = "김파이썬" print(f"안녕하세요, {name}님!") # f 추가

실수 3: 변수명 오타

# ❌ 틀린 예 naam = input("이름: ") # naam으로 저장 print(f"안녕, {name}!") # name으로 사용 (오타!) # ✅ 올바른 예 name = input("이름: ") # name으로 저장 print(f"안녕, {name}!") # name으로 사용

🎮 퀴즈: 입출력 마스터 확인

Q1. 다음 코드의 출력 결과는?

print("A", "B", "C", sep="-")
  1. A B C
  2. A-B-C
  3. ABC
  4. A, B, C

💡 정답 확인

정답: 2번 (A-B-C)

sep="-"는 각 값 사이에 -를 넣어서 구분한다는 의미입니다.

Q2. input() 함수로 받은 값의 타입은?

age = input("나이: ")
  1. 정수(int)
  2. 실수(float)
  3. 문자열(string)
  4. 불린(boolean)

💡 정답 확인

정답: 3번 (문자열)

input() 함수는 항상 문자열을 반환합니다. 숫자로 사용하려면 int()float()으로 변환해야 합니다.

Q3. 다음 중 올바른 f-string 사용법은?

name = "파이썬"
  1. print("안녕, name!")
  2. print("안녕, {name}!")
  3. print(f"안녕, {name}!")
  4. print("안녕, " + name + "!")

💡 정답 확인

정답: 3번과 4번 둘 다 정답

3번은 f-string 방법, 4번은 문자열 연결 방법입니다. 하지만 f-string이 더 현대적이고 읽기 쉬운 방법입니다.

✅ 입출력 마스터 체크리스트

✅ 입출력 마스터 체크리스트

🌟 입출력 완전 정복

이제 여러분은 다음과 같은 능력을 갖추게 되었습니다:

  • 고급 출력: 구분자, 줄바꿈 제어, 형식화된 출력
  • 사용자 입력: 키보드 입력을 받아 프로그램에 활용
  • 타입 변환: 문자열을 숫자로, 숫자를 문자열로 변환
  • 대화형 프로그램: 사용자와 실시간으로 소통하는 프로그램 제작

🚀 다음 단계로

입출력의 기술을 익혔으니, 이제 데이터를 기억하는 방법을 배울 차례입니다! 다음 토픽에서는:

변수: 소중한 정보를 담는 상자 메모리: 컴퓨터가 기억하는 방식 이름 짓기: 변수에 의미있는 이름 부여하기

여러분의 프로그램이 일회성 출력에서 정보를 기억하고 활용하는 프로그램으로 진화하는 순간을 목격하게 될 것입니다! ✨

Last updated on