Topic 5: 기본 데이터 타입 - 숫자, 문자, 참/거짓 🎭
🎯 학습 목표
파이썬의 기본 데이터 타입(int, float, str, bool)을 이해하고, 각 타입의 특징과 사용법을 익혀 적절한 상황에서 활용할 수 있습니다.
📊 데이터 타입이란?
프로그래밍에서 데이터 타입은 데이터의 종류를 구분하고 각각을 적절히 처리하는 방법을 의미합니다:
age = 25 # 정수 (int)
height = 175.5 # 실수 (float)
name = "김파이썬" # 문자열 (str)
is_student = True # 불린 (bool)
각 타입은 고유한 특성과 사용 목적을 가지고 있습니다:
- 숫자: 계산과 수치 연산
- 문자열: 텍스트 처리와 표현
- 불린: 논리적 판단과 조건 처리
🔢 정수 타입 (Integer, int)
기본 개념
# 정수 타입의 다양한 예
age = 20
student_count = 150
temperature = -5
year = 2024
print(f"나이: {age}")
print(f"학생 수: {student_count}")
print(f"온도: {temperature}도")
print(f"연도: {year}")
# 타입 확인
print(f"age의 타입: {type(age)}") # <class 'int'>
정수 연산
# 기본 연산
a = 10
b = 3
print(f"덧셈: {a} + {b} = {a + b}") # 13
print(f"뺄셈: {a} - {b} = {a - b}") # 7
print(f"곱셈: {a} * {b} = {a * b}") # 30
print(f"나눗셈: {a} / {b} = {a / b}") # 3.3333...
print(f"몫: {a} // {b} = {a // b}") # 3
print(f"나머지: {a} % {b} = {a % b}") # 1
print(f"거듭제곱: {a} ** {b} = {a ** b}") # 1000
🔢 실수 타입 (Float)
기본 개념
# 실수 타입
height = 175.5
weight = 68.7
pi = 3.14159
price = 12000.0
print(f"키: {height}cm")
print(f"몸무게: {weight}kg")
print(f"원주율: {pi}")
print(f"가격: {price}원")
print(f"height의 타입: {type(height)}") # <class 'float'>
실수와 정수 연산
# 다양한 수 타입 연산
x = 15.5
y = 4
print(f"실수 + 정수: {x} + {y} = {x + y}") # 19.5
print(f"실수 / 정수: {x} / {y} = {x / y}") # 3.875
print(f"실수 몫: {x} // {y} = {x // y}") # 3.0
print(f"실수 나머지: {x} % {y} = {x % y}") # 3.5
📝 문자열 타입 (String, str)
기본 사용법
# 문자열 타입
name = "김파이썬"
message = '안녕하세요!'
long_text = """여러 줄에 걸친
긴 문자열도
이렇게 쓸 수 있어요!"""
print(f"이름: {name}")
print(f"메시지: {message}")
print(f"긴 텍스트:\n{long_text}")
print(f"name의 타입: {type(name)}") # <class 'str'>
문자열 연결과 반복
# 문자열 합치기
first_name = "김"
last_name = "파이썬"
full_name = first_name + last_name
print(f"전체 이름: {full_name}")
# 반복하기
laugh = "하" * 5
print(f"웃음: {laugh}") # 하하하하하
# 숫자와 문자열 연결
age = 20
message = "나이: " + str(age) # 타입 변환 필요
print(message)
# f-string 사용 (권장)
message = f"나이: {age}"
print(message)
문자열 메서드
# 문자열 변환
text = "Hello Python World"
print(f"원본: {text}")
print(f"대문자: {text.upper()}")
print(f"소문자: {text.lower()}")
print(f"첫글자만 대문자: {text.capitalize()}")
print(f"단어별 첫글자 대문자: {text.title()}")
# 한글 문자열 처리
korean_text = " 안녕하세요 파이썬 "
print(f"원본: '{korean_text}'")
print(f"공백 제거: '{korean_text.strip()}'")
print(f"바꾸기: {korean_text.replace('파이썬', '프로그래밍')}")
문자열 정보 확인
# 문자열 분석
sentence = "파이썬은 재미있어요!"
print(f"문장: {sentence}")
print(f"길이: {len(sentence)}글자")
print(f"'파이썬' 포함 여부: {'파이썬' in sentence}")
print(f"'자바' 포함 여부: {'자바' in sentence}")
print(f"'요!'로 끝나는가: {sentence.endswith('요!')}")
print(f"'파이썬'으로 시작하는가: {sentence.startswith('파이썬')}")
✅ 불린 타입 (Boolean, bool)
기본 개념
# 불린 타입
is_student = True
is_graduated = False
has_license = True
print(f"학생인가요? {is_student}")
print(f"졸업했나요? {is_graduated}")
print(f"자격증이 있나요? {has_license}")
print(f"is_student의 타입: {type(is_student)}") # <class 'bool'>
비교 연산으로 불린 생성
# 비교 연산
age = 20
height = 175
name = "김파이썬"
print(f"성인인가? {age >= 18}") # True
print(f"키가 180 이상? {height >= 180}") # False
print(f"이름이 김파이썬? {name == '김파이썬'}") # True
print(f"키가 170과 다른가? {height != 170}") # True
논리 연산자 활용
# 여러 조건 조합
is_student = True
print(f"성인이면서 키 170 이상? {age >= 18 and height >= 170}") # True
print(f"학생이거나 미성년자? {is_student or age < 18}") # True
print(f"학생이 아닌가? {not is_student}") # False
🔄 타입 변환
기본 타입 변환
# 정수 ↔ 실수
int_num = 42
float_num = float(int_num)
print(f"{int_num} → {float_num}") # 42 → 42.0
# 실수 → 정수 (소수점 버림)
float_num = 3.8
int_num = int(float_num)
print(f"{float_num} → {int_num}") # 3.8 → 3
# 문자열 → 숫자
str_num = "123"
int_from_str = int(str_num)
float_from_str = float(str_num)
print(f"'{str_num}' → {int_from_str} (정수)")
print(f"'{str_num}' → {float_from_str} (실수)")
타입 확인
# 타입 확인
data_list = [42, 3.14, "Hello", True]
print("데이터 타입 확인")
print("-" * 20)
for i, data in enumerate(data_list):
data_type = type(data).__name__
print(f"{i+1}. {data} → {data_type}")
🚨 자주 발생하는 오류와 해결법
타입 오류
# ❌ 오류 발생
# result = "10" + 5 # TypeError
# ✅ 해결 방법
text_num = "10"
num = 5
result = int(text_num) + num # 15
print(f"결과: {result}")
변환 오류
# ❌ 오류 발생
# int_num = int("3.14") # ValueError
# ✅ 해결 방법
float_str = "3.14"
int_num = int(float(float_str)) # 3
print(f"결과: {int_num}")
💡 퀴즈: 데이터 타입 이해도 체크
Q1. 다음 중 정수 타입은?
- 3.14
- “25”
- 42
- True
💡 정답 확인
정답: 3번 (42)
42는 정수(int) 타입입니다. 3.14는 실수, “25”는 문자열, True는 불린 타입입니다.
Q2. input() 함수의 결과 타입은?
- 정수(int)
- 실수(float)
- 문자열(str)
- 불린(bool)
💡 정답 확인
정답: 3번 (문자열)
input() 함수는 항상 문자열을 반환합니다. 숫자로 사용하려면 int()나 float()로 변환해야 합니다.
Q3. type() 함수의 역할은?
- 변수의 값을 바꾼다
- 변수의 타입을 확인한다
- 변수를 삭제한다
- 변수를 복사한다
💡 정답 확인
정답: 2번 (변수의 타입을 확인한다)
type() 함수는 변수나 값의 데이터 타입을 알려주는 함수입니다.
✅ 데이터 타입 마스터 체크리스트
✅ 데이터 타입 마스터 체크리스트
🎉 Unit 2 완주!
기본 데이터 타입까지 학습하면서 파이썬의 기본 요소들을 모두 완성했습니다!
🏆 Unit 2에서 배운 내용
- Hello World: 첫 번째 파이썬 프로그램 작성
- 출력과 입력: print와 input으로 소통하기
- 변수: 데이터를 저장하고 관리하기
- 연산자: 계산과 비교의 도구
- 기본 데이터 타입: 숫자, 문자, 참/거짓 다루기
🚀 이제 할 수 있는 것들
- 사용자와 상호작용하는 프로그램 작성
- 변수를 활용한 데이터 저장과 관리
- 다양한 연산자로 계산과 비교 수행
- 적절한 데이터 타입 선택과 변환
- 기본적인 프로그램 로직 구현
축하합니다! 이제 파이썬 프로그래밍의 든든한 기초를 갖추셨습니다! 🎊
다음 Unit에서는 조건문과 반복문을 배워서 프로그램에 진정한 지능과 자동화 능력을 부여해보겠습니다!
Last updated on