복습
for반복문
반복가능 객체 - 이터러블 객체
반복객체가 포함되는 요소 전체 대상
[1,2,3,4,5]
while반복문
무한루프
조건 도달
강제 탈출


중첩 반복문으로 피라미드 만들기


while 반복문
조건문 기반 특정코드 반복해서 실행할 때 사용하는 구문
범위: 정수의 범위 나타내는 값, range()로 생성
while 불 표현식:
문장

for / while 반복문 중간 탈출: break
반복문의 처음으로 (다음바퀴) : continue

리스트에 적용할 수 있는 기본 함수:min(), max(), sum()
리스트 뒤집기: reversed()
현재 인덱스가 몇 번째인지 확인하기: enumerate()
딕셔너리로 쉽게 반복문 작성하기: items()
리스트 안에 for문 사용하기: 리스트 내포


위 for 문에서만 654321 나옴
reversed 객체는 한번은 for문만 실행 => 제너레이터
reversed()의 반환 타입은 메모리 효율을 위해 즉시 계산 X
reverseiterater object at 0x~~~~~~
지연 평가 lazy evaluation
for문과 조합해서 실제 사용하는 시점에
reversed 객체는 이터레이터다. O
제너레이터란 데이터를 미리 다 만들어두자 않고 필요할 때만 생성해주는 함수
제너레이터는 내부적으로 필요한 값 하나만 밖으로 던지고 일시정지하는 성질

제너레이터는 이터레이터의 한 종류

enumerate() 함수와 리스트


리스트 내포
리스트 이름 = [표현식 for 반복자 in 반복할 수 있는 것]
리스트 이름 = [표현식 for 반복자 in 반복할 수 있는 것 if 조건문]
이터러블: 반복할 수 있는 것, 내부에 있는 요소들을 차례로 꺼낼 수 있는 객체
이터레이터: next()를 적용해 하나씩 꺼낼 수 있는 요소
enumerate(리스트)
딕셔너리.items()
{:b} #2
{:o} #8
{:x} #16
숫자 종류

염기 개수

염기 코돈 개수

2차원 리스트 평탄화

함수
함수 호출: 함수 사용
리턴값: 함수 호출해서 나온 최종 값
def 함수이름():
문장
def 함수 이름(매개변수, 매개변수, ...):
문장
매개변수는 함수 생성할 때 괄호 내부에 식별자 입력해서 생성
가변 매개변수 : 여러 값 넣을 수 있다

기본 매개변수 : '매개변수=값' 형태
기본 매개변수 뒤에 일반 매개변수 못 옴
Positinal Arguments 일반 매개변수 a
Dedault Arguments 기본 매개변수 n=2
Arbitrary Arguments 가변 매개변수 *values
Keyword Arguments 키워드 매개변수
리턴값: 함수의 최종적인 결과 의미


딕셔너리처럼
재귀: 자기 자신을 호출
재귀 함수를 사용해 팩토리얼 구하기


튜플: 함수와 함께 많이 사용되는 리스트와 비슷한 자료형, 리스트와 다른 점은 한번 결정된 요소는 바꿀 수 없음
람다: 매개변수로 함수를 전달하기 위해 함수 구문을 작성하기 번거롭고, 코드 공간 낭비라는 생각이 들 때 함수를 간단하고 쉽게 선언하는 방법(1회용 함수 만들 때 자주 사용)

map(): 리스트의 요소를 함수에 넣고 리턴된 값으로 새로운 리스트 구성해주는 함수
map(함수, 리스트)
filter(): 리스트의 요소를 함수에 넣고 리턴된 값이 True인 것, 새로운 리스트 구성해주는 함수
filter(함수, 리스트)
함수의 매개변수로 함수 전달하기

lambda: 간단한 함수를 쉽게 선언하는 방법
lambda 매개변수 : 리턴값

파일 열고 닫기
열기 open()
파일 객체 = open(문자열: 파일 경로, 문자열: 읽기 모드)

텍스트 읽기
파일객체.read()
네이버 임금 계산기
import csv
def load_tax_table(path):
table = []
with open(path, newline="", encoding="utf-8") as f:
reader = csv.reader(f)
for row in reader:
cleaned = []
for cell in row:
cell = cell.strip().replace(",", "").replace('"', '')
cleaned.append(None if cell == "-" else cell)
table.append(cleaned)
return table
def find_income_tax(monthly_salary, num_dependents, tax_table):
salary_unit = monthly_salary // 1000 # 간이세액표는 천원 단위
for row in tax_table:
start = int(row[0])
end = int(row[1])
if start <= salary_unit < end:
tax_values = row[2:]
index = min(num_dependents - 1, len(tax_values) -1)
tax = tax_values[index]
if tax is None:
return 0
return int(tax)
return 0
def salary_calculator(
annual_salary,
num_dependents=1,
tax_file=r"C:\Users\302\PycharmProjects\PythonProject\tax.txt"
):
tax_table = load_tax_table(tax_file)
monthly_salary = annual_salary / 12
national_pension = monthly_salary * 0.0475
health_insurance = monthly_salary * 0.03595
long_term_care = health_insurance * 0.1281
employment_insurance = monthly_salary * 0.009
income_tax = find_income_tax(
monthly_salary,
num_dependents,
tax_table
)
local_income_tax = income_tax * 0.1
total_deduction = (
national_pension +
health_insurance +
long_term_care +
employment_insurance +
income_tax +
local_income_tax
)
monthly_net_salary = monthly_salary - total_deduction
annual_net_salary = monthly_net_salary * 12
return {
"monthly_salary": round(monthly_salary),
"national_pension": round(national_pension),
"health_insurance": round(health_insurance),
"long_term_care": round(long_term_care),
"employment_insurance": round(employment_insurance),
"income_tax": round(income_tax),
"local_income_tax": round(local_income_tax),
"monthly_net_salary": round(monthly_net_salary),
"annual_net_salary": round(annual_net_salary),
}
annual_salary = int(input("Enter annual salary: "))
num_dependents = int(input("Enter number of dependents: "))
result = salary_calculator(
annual_salary= annual_salary,
num_dependents= num_dependents
)
for k, v in result.items():
print(f"{k:10s}: {v:,} 원")
Enter annual salary: 28000000 Enter number of dependents: 1 monthly_salary: 2,333,333 원 national_pension: 110,833 원 health_insurance: 83,883 원 long_term_care: 10,745 원 employment_insurance: 21,000 원 income_tax: 30,130 원 local_income_tax: 3,013 원 monthly_net_salary: 2,073,728 원 annual_net_salary: 24,884,739 원
수정할 것
국민연금 상하한 적용
각 보험료 계산 후 즉시 절사
요양보험 절사된 건강보험 기준
최신 간이세액표 사용
'로보테크AI' 카테고리의 다른 글
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/01/06 (1) | 2026.01.06 |
|---|---|
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/01/05 (0) | 2026.01.05 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-25/12/31 (0) | 2025.12.31 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-2025/12/30[파이썬] (0) | 2025.12.30 |
| 로보테크 AI[준비] (0) | 2025.12.03 |
