프로그래밍은 결국 계산이에요! 재고 관리, 매출 집계, 할인율 계산, 데이터 분석… 현업에서 매일 하는 일이 숫자 다루는 거예요. 😊 정수, 실수 구분하고, 사칙연산 하고, round() 같은 거 쓰고… 오늘 배우는 내용 제대로 익혀두면 나중에 엄청 편합니다!
(15분 완독 ⭐⭐)
🎯 오늘의 학습 목표
📚 사전 지식
🎯 학습 목표 1: 정수(int)와 실수(float) 이해하기
Python에는 두 가지 숫자 타입이 있습니다.
정수 (int = integer)
소수점이 없는 숫자
1
2
3
| age = 25 # 정수
year = 2024 # 정수
temperature = -5 # 음수도 정수
|
실수 (float = floating point)
소수점이 있는 숫자
1
2
3
| height = 175.5 # 실수
pi = 3.14 # 실수
price = 1000.0 # 소수점이 있으면 실수
|
💡 정수와 실수 구분하기
- 정수: 1, 25, -5, 1000
- 실수: 1.0, 3.14, -5.5, 175.5
🎯 학습 목표 2: 사칙연산 (+, -, *, /) 사용하기
덧셈 (+)
1
2
3
4
5
| a = 10
b = 3
result = a + b
print(result) # 13
|
뺄셈 (-)
1
2
3
4
5
| a = 10
b = 3
result = a - b
print(result) # 7
|
곱셈 (*)
1
2
3
4
5
| a = 10
b = 3
result = a * b
print(result) # 30
|
나눗셈 (/)
1
2
3
4
5
| a = 10
b = 3
result = a / b
print(result) # 3.3333333333333335
|
💡 나눗셈 결과는 항상 실수(float)입니다!
거듭제곱 (**)
1
2
3
4
5
| result = 2 ** 3 # 2의 3제곱
print(result) # 8
result = 5 ** 2 # 5의 2제곱
print(result) # 25
|
🎯 학습 목표 3: 나머지와 몫 구하기
몫 (//)
소수점 버리고 정수 부분만
1
2
3
4
5
| result = 10 // 3
print(result) # 3 (몫만)
result = 20 // 6
print(result) # 3
|
나머지 (%)
나누고 남은 나머지
1
2
3
4
5
| result = 10 % 3
print(result) # 1 (나머지)
result = 20 % 6
print(result) # 2
|
실생활 예시
1
2
3
4
5
6
7
8
9
| # 사탕 10개를 3명이 나눠 먹으면?
candy = 10
people = 3
each = candy // people # 각자 몇 개? (몫)
remain = candy % people # 남은 사탕? (나머지)
print(f"각자 {each}개씩, {remain}개 남음")
# 각자 3개씩, 1개 남음
|
💡 몫과 나머지 활용
- 몫(
//): 전체를 똑같이 나눴을 때 각자 받는 개수 - 나머지(
%): 똑같이 나누고 남은 개수
🎯 학습 목표 4: 숫자 타입 확인하기
type() 함수로 타입 확인
1
2
3
4
5
| age = 25
height = 175.5
print(type(age)) # <class 'int'>
print(type(height)) # <class 'float'>
|
타입 변환하기
1
2
3
4
5
6
7
8
9
| # 실수를 정수로
pi = 3.14
pi_int = int(pi)
print(pi_int) # 3 (소수점 버림)
# 정수를 실수로
age = 25
age_float = float(age)
print(age_float) # 25.0
|
💡 타입 변환 주의
int()는 소수점을 버립니다 (반올림 아님!) float()는 소수점 .0을 추가합니다
🎯 학습 목표 5: 복합 대입 연산자 사용하기
변수에 연산 결과를 다시 저장할 때 간단하게 쓰는 방법입니다.
1
2
3
4
5
6
| score = 10
score = score + 5 # 이렇게 쓰는 대신
score = 10
score += 5 # 이렇게 간단히!
print(score) # 15
|
모든 연산자에 적용 가능:
1
2
3
4
5
6
| number = 10
number += 5 # number = number + 5 → 15
number -= 3 # number = number - 3 → 12
number *= 2 # number = number * 2 → 24
number /= 4 # number = number / 4 → 6.0
|
🎯 학습 목표 6: 숫자 형식 맞추기
round() 함수로 소수점 제한
1
2
3
4
5
6
7
| pi = 3.141592653589793
# 소수점 2자리까지
print(round(pi, 2)) # 3.14
# 소수점 4자리까지
print(round(pi, 4)) # 3.1416
|
f-string으로 형식 지정
1
2
3
4
| price = 1234.5678
print(f"가격: {price:.2f}원") # 가격: 1234.57원
print(f"가격: {price:.0f}원") # 가격: 1235원
|
💡 형식 지정 문법
.2f: 소수점 2자리까지 (float) .0f: 소수점 없이 (반올림됨)
💻 실습 예제
예제 1: 간단한 계산기
1
2
3
4
5
6
7
8
9
| a = 100
b = 30
print("덧셈:", a + b)
print("뺄셈:", a - b)
print("곱셈:", a * b)
print("나눗셈:", a / b)
print("몫:", a // b)
print("나머지:", a % b)
|
출력:
1
2
3
4
5
6
| 덧셈: 130
뺄셈: 70
곱셈: 3000
나눗셈: 3.3333333333333335
몫: 3
나머지: 10
|
예제 2: BMI 계산기
1
2
3
4
5
6
7
8
9
10
| # 키와 몸무게 입력
height = 1.75 # 미터 단위
weight = 70 # 킬로그램
# BMI 계산 (체질량지수 = 몸무게 / 키²)
bmi = weight / (height ** 2)
print("키:", height, "m")
print("몸무게:", weight, "kg")
print("BMI:", bmi)
|
출력:
1
2
3
| 키: 1.75 m
몸무게: 70 kg
BMI: 22.857142857142858
|
예제 3: 시간 계산
1
2
3
4
5
6
7
| # 125분은 몇 시간 몇 분?
total_minutes = 125
hours = total_minutes // 60 # 몫 = 시간
minutes = total_minutes % 60 # 나머지 = 분
print(f"{total_minutes}분 = {hours}시간 {minutes}분")
|
출력:
💡 실전 팁 & 주의사항
💡 Tip 1: 나눗셈 결과는 항상 실수
1
2
3
| result = 10 / 2
print(type(result)) # <class 'float'>
print(result) # 5.0 (5가 아니라 5.0!)
|
💡 Tip 2: 0으로 나누기 금지
1
| result = 10 / 0 # ZeroDivisionError!
|
💡 Tip 3: 정수 변환 시 소수점 버림
1
2
| pi = 3.14
print(int(pi)) # 3 (3.14가 아니라 3!)
|
💡 Tip 4: 실수 연산의 부정확성
1
2
3
4
5
6
7
| result = 0.1 + 0.2
print(result) # 0.30000000000000004 (?)
# 이유: 컴퓨터는 실수를 정확히 표현 못함
# 해결: round() 사용
result = round(0.1 + 0.2, 2)
print(result) # 0.3
|
💡 Tip 5: 문자열과 숫자 연산 불가
문제: TypeError: can only concatenate str (not "int") to str
1
2
3
4
5
6
7
8
| # ❌ 에러 발생
age = "25"
result = age + 1 # TypeError!
# ✅ 정상 작동
age = "25"
result = int(age) + 1 # 문자열을 숫자로 변환
print(result) # 26
|
💡 Tip 6: 소수점이 너무 길게 나올 때
1
2
3
4
5
6
7
8
9
| # 문제
result = 10 / 3
print(result) # 3.3333333333333335
# 해결 방법 1: round() 사용
print(round(result, 2)) # 3.33
# 해결 방법 2: f-string 사용
print(f"{result:.2f}") # 3.33
|
🧪 연습 문제
문제 1: 온도 변환기
섭씨 30도를 화씨로 변환하세요. 공식: 화씨 = 섭씨 × 9/5 + 32
💡 힌트
변수에 섭씨 온도를 저장하고, 공식을 그대로 적용하세요!
✅ 정답
1
2
3
4
5
| celsius = 30
fahrenheit = celsius * 9/5 + 32
print(f"섭씨 {celsius}도 = 화씨 {fahrenheit}도")
# 섭씨 30도 = 화씨 86.0도
|
문제 2: 짝수 홀수 판별
숫자가 짝수인지 홀수인지 확인하세요. (나머지 연산 사용)
💡 힌트
✅ 정답
1
2
3
4
5
6
7
8
9
10
| number = 7
remainder = number % 2
print("숫자:", number)
print("2로 나눈 나머지:", remainder)
if remainder == 0:
print("짝수입니다")
else:
print("홀수입니다")
|
문제 3: 거스름돈 계산
1000원으로 650원짜리 물건을 샀을 때 거스름돈은?
💡 힌트
✅ 정답
1
2
3
4
5
6
7
8
| money = 1000
price = 650
change = money - price
print(f"낸 돈: {money}원")
print(f"물건 가격: {price}원")
print(f"거스름돈: {change}원")
# 거스름돈: 350원
|
📝 오늘 배운 내용 정리
- 정수(int): 소수점 없는 숫자
- 실수(float): 소수점 있는 숫자
- 사칙연산: +, -, *, /
- 특별 연산: **, //, %
- round(): 소수점 반올림
🔗 관련 자료
📚 이전 학습
Day 4: 변수와 print() ⭐
어제는 변수를 만들고 print()로 출력하는 방법을 배웠습니다!
📚 다음 학습
Day 6: 문자열 다루기 (str) ⭐⭐
내일은 문자열을 다루는 방법을 배웁니다!
“늦었다고 생각할 때가 가장 빠른 시기입니다!” 🚀
| Day 5/100 | Phase 1: Python 시작하기 | #100DaysOfPython |