변수와 자료형
데이터를 저장하고, 계산하고, 가공하는 방법을 익히는 단계입니다.
변수·str·int·float·bool·형변환·input()·f-string까지 — 프로그래밍의 핵심을 실무로 배웁니다.
학습 목표
수업이 끝나면 다음을 직접 할 수 있어야 합니다.
input()으로 사용자 입력을 받을 수 있다변수란 무엇인가?
변수 = 데이터를 저장해 놓는 이름표
예를 들어 다음과 같이 작성하면:
name = "홍길동" age = 30
컴퓨터 메모리에 다음처럼 데이터가 저장됩니다.
나중에 변수 이름으로 저장된 값을 사용할 수 있습니다.
name = "홍길동" age = 30 print(name) print(age)
홍길동 30
변수 저장과 사용
기본 형태는 다음과 같습니다.
변수이름 = 값
프로그래밍에서 =는 수학의 "같다"가 아닙니다.
오른쪽의 값을 왼쪽 변수에 저장한다는 의미입니다.
즉 price = 10000 은 price ← 10000 으로 이해하세요.
변수를 사용하면 계산이 훨씬 편리해집니다.
price = 10000 quantity = 3 print(price) print(quantity) print(price * quantity)
10000 3 30000
변수를 사용하는 이유
다음 두 프로그램을 비교해 보세요.
print(10000 * 3) print(10000 * 5) print(10000 * 10)
가격을 바꾸려면 3곳을 모두 수정해야 합니다.
price = 10000 print(price * 3) print(price * 5) print(price * 10)
price = 15000 한 줄만 바꾸면 끝!
변수는 단순히 값을 저장하는 것이 아닙니다. 데이터를 한 곳에서 관리해서 프로그램을 유지·보수하기 쉽게 만들어 줍니다. 실무에서 이것이 매우 중요합니다.
변수 이름 규칙
업무 프로그램에서는 변수 이름이 코드의 가독성을 결정합니다. 의미를 알 수 있는 이름을 사용하세요.
a = "홍길동" b = 1000000 c = 100000
customer_name = "홍길동" supply_amount = 1000000 tax_amount = 100000
| 규칙 | 가능 | 불가능 |
|---|---|---|
영문자·숫자·밑줄(_) 사용 가능 | name, age2, my_name | my-name, my name |
| 숫자로 시작 불가 | price2 | 2price |
| 여러 단어는 snake_case | supply_amount | SupplyAmount (Python 비권장) |
| 한글 가능하지만 비권장 | price = 100 | 가격 = 100 (작동하나 비권장) |
자료형 — str · int · float · bool
변수에 저장되는 데이터에는 종류(자료형)가 있습니다. 대표적인 4가지를 먼저 익힙니다.
"100"
10000 1000000
171.5 -2.5
is_paid = True
자료형을 확인하려면 type()을 사용합니다.
name = "홍길동" age = 30 height = 171.5 is_member = True print(type(name)) print(type(age)) print(type(height)) print(type(is_member))
<class 'str'> <class 'int'> <class 'float'> <class 'bool'>
사칙연산과 수식 계산
| 연산 | 기호 | 예제 | 결과 |
|---|---|---|---|
| 더하기 | + | 10 + 3 | 13 |
| 빼기 | - | 10 - 3 | 7 |
| 곱하기 | * | 10 * 3 | 30 |
| 나누기 | / | 10 / 3 | 3.333... |
| 몫 | // | 10 // 3 | 3 |
| 나머지 | % | 10 % 3 | 1 |
| 제곱 | ** | 2 ** 3 | 8 |
price = 10000 quantity = 5 total = price * quantity print(total) # 50000 print(10 / 3) # 3.3333... (나누기) print(10 // 3) # 3 (몫) print(10 % 3) # 1 (나머지) print(2 ** 3) # 8 (제곱)
10 + 20 * 3 → 70 (곱하기 먼저)
(10 + 20) * 3 → 90 (괄호 먼저)
실무에서는 복잡한 계산일수록 괄호를 적극적으로 사용해서 의도를 명확하게 표현하세요.
문자열 조작
문자열은 +로 연결할 수 있습니다.
first_name = "홍" last_name = "길동" name = first_name + last_name print(name)
홍길동
그러나 문자열과 숫자를 직접 연결하면 오류가 발생합니다.
age = 30 print("나이는 " + age) # TypeError 발생!
TypeError: can only concatenate str (not "int") to str
해결 방법은 str()로 숫자를 문자열로 변환하거나, 다음 섹션에서 배울 f-string을 사용하는 것입니다.
형변환 — str() · int() · float()
자료형을 다른 자료형으로 바꾸는 것을 형변환(Type Conversion)이라고 합니다.
str()int()float()# 숫자 → 문자열 age = 30 print("나이는 " + str(age)) # → 나이는 30 # 문자열 → 정수 number = int("100") print(number + 50) # → 150 # 문자열 → 실수 rate = float("10.5") print(rate * 2) # → 21.0
엑셀, CSV, 데이터베이스에서 읽어온 데이터는 대부분 문자열입니다. 계산을 하려면 반드시 숫자로 변환해야 합니다. 이 개념은 7단계 파일 처리부터 매우 자주 쓰입니다.
input() — 사용자 입력 받기
이제 프로그램이 사용자에게 데이터를 입력받을 수 있습니다.
name = input("이름을 입력하세요: ") print("안녕하세요.") print(name)
이름을 입력하세요: 홍길동
안녕하세요. 홍길동
input()으로 받은 모든 데이터는 항상 문자열(str)입니다.
숫자를 입력해도 '30' 처럼 문자열로 저장됩니다. 계산에 사용하려면 반드시 형변환이 필요합니다.
# ❌ 잘못된 방법 — 문자열로 받음 age = input("나이: ") # ✅ 올바른 방법 — 정수로 바로 변환 age = int(input("나이: ")) # ✅ 실수가 필요한 경우 rate = float(input("세율: "))
이제 진짜 프로그램다운 계산 프로그램을 만들 수 있습니다.
price = int(input("상품 가격: ")) quantity = int(input("수량: ")) total = price * quantity print("총 금액:", total)
상품 가격: 15000 수량: 4
총 금액: 60000
f-string — 문자열 포매팅
문자열에 변수 값을 넣을 때 +와 str()을 계속 쓰는 것은 불편합니다. f-string을 사용하면 훨씬 편리합니다.
print("이름: " + name) print("나이: " + str(age))
print(f"이름: {name}") print(f"나이: {age}")
f-string은 문자열 앞에 f를 붙이고, 중괄호 { } 안에 변수를 넣습니다.
금액에 쉼표(,)를 표시하는 것도 f-string으로 간단하게 할 수 있습니다.
amount = 1000000 print(f"{amount}") # 1000000 print(f"{amount:,}") # 1,000,000 print(f"공급가액: {amount:,}원") # 공급가액: 1,000,000원 # 소수점 없애기 (:.0f) tax = 100000.0 print(f"부가세: {tax:,.0f}원") # 부가세: 100,000원
1000000 1,000,000 공급가액: 1,000,000원 부가세: 100,000원
회계·세무 업무 자동화에서 숫자에 쉼표를 표시하는 것은 기본입니다. f"{amount:,}" 와 f"{amount:,.0f}" 는 외워두세요.
실습 1 ~ 5
name = input("이름: ") job = input("직업: ") company = input("회사: ") print() print("===== 자기소개 =====") print(f"이름: {name}") print(f"직업: {job}") print(f"회사: {company}")
a = int(input("첫 번째 숫자: ")) b = int(input("두 번째 숫자: ")) print(f"더하기: {a + b}") print(f"빼기: {a - b}") print(f"곱하기: {a * b}") print(f"나누기: {a / b}")
더하기: 25 빼기: 15 곱하기: 100 나누기: 4.0
monthly_salary = int(input("월급을 입력하세요: ")) annual_salary = monthly_salary * 12 print(f"월급: {monthly_salary:,}원") print(f"연봉: {annual_salary:,}원")
월급: 3,000,000원 연봉: 36,000,000원
supply = int(input("공급가액: ")) tax = supply * 0.1 total = supply + tax print("====================") print(f"공급가액 : {supply:,.0f}원") print(f"부가세 : {tax:,.0f}원") print(f"합계 : {total:,.0f}원") print("====================")
==================== 공급가액 : 2,500,000원 부가세 : 250,000원 합계 : 2,750,000원 ====================
customer = input("거래처명: ") supply = int(input("공급가액: ")) tax = supply * 0.1 total = supply + tax print() print("===== 거래처 거래내역 =====") print(f"거래처 : {customer}") print(f"공급가액 : {supply:,.0f}원") print(f"부가세 : {tax:,.0f}원") print(f"합계 : {total:,.0f}원")
거래처 1개 → 거래처 여러 개(반복문) → 엑셀 파일 처리 → 자동 보고서. 지금 만드는 이 작은 프로그램이 업무 자동화 프로그램의 출발점입니다.
2단계 핵심 실습
학생들이 스스로 만들어보는 종합 실습입니다.
다음 정보를 입력받아 견적서를 출력하는 프로그램을 직접 만드세요.
tax = supply × 0.1
total = supply + tax
customer = input("거래처: ") price = int(input("단가: ")) quantity = int(input("수량: ")) # 나머지를 직접 완성해 보세요!
코드를 바로 작성하게 하지 말고 먼저 질문하세요.
"공급가액을 입력받아 부가세와 합계를 계산하려면 어떤 순서로 컴퓨터에게 시켜야 할까요?"
학생이 ① 입력 → ② 계산 → ③ 출력 순서를 먼저 생각하게 합니다. 이 습관은 나중에 AI 코딩·바이브 코딩을 할 때도 매우 중요합니다.
과제
나의 정보 입력 출력 프로그램
이름, 나이, 직업, 지역을 입력받아 아래 형태로 출력하세요.
===== 나의 정보 ===== 이름: 나이: 직업: 지역: ====================
주문내역 계산
상품명, 가격, 수량을 입력받아 주문금액을 계산하고 출력하세요.
===== 주문내역 ===== 상품명 : 가격 : 수량 : 주문금액: ==================
세금계산서 출력
거래처명과 공급가액을 입력받아 부가세와 합계를 자동 계산하세요.
===== 세금계산서 정보 ===== 거래처 : 공급가액: 부가세 : 합계 : =========================
핵심 정리 & 다음 단계 연결
다음 내용을 스스로 설명할 수 있으면 2단계를 성공적으로 마친 것입니다.
변수 = 값데이터를 이름표에 저장
str"홍길동" — 문자열
int100 — 소수점 없는 정수
float10.5 — 소수점 있는 실수
boolTrue / False
type()자료형 확인
input()사용자 입력 받기 (결과는 str)
int() float() str()형변환
f"{변수}"f-string 포매팅
f"{금액:,}"쉼표 표시
+ - * /사칙연산
// % **몫 / 나머지 / 제곱
3단계에서는 프로그램이 상황에 따라 다르게 작동하는 방법을 배웁니다.
if → 비교연산자 → 논리연산자 → 중첩조건 → 회계업무 판단 → 실전 과제 순서로 진행됩니다.
공급가액 >= 10000000 → "관리자 검토 필요" 공급가액 < 10000000 → "일반 처리"
전체 과정에서 현재 위치: