-
[python]조건과 반복, 리스트와 튜플 기반의 미니 프로젝트/종합 소득과세 계산/디지털 형태의 정수 출력/ 실생활 게임 코딩구현/로또/가위바위보Languages/python 2021. 5. 6. 16:33반응형
종합소득 과세와 누진 공제액 계산
mini project 1
종합 소득 과세 표준 표의 이해와 누진 공제액 계산 기본
종합 소득세 과세 방법을 이해하고 소득 금액에 따른 세금 계산
income = 12_000000 // 0의 입력 편의를 위해 중간에 _를 사용할 수 있다. rate = 6/100 print(income * rate) 720000.0 income = 20_000000 rate1 = 6 rate2 = 15 tax = 12_000000 * rate1/100 + (income - 12_000000) * rate2/100 print(MAX) 1920000.0
mini project2
누진 공제액의 이해
누진 공제액 108만원은 무엇일까?
세금 계산의 편의를 위해 과세 표준 금액에 해당하는 최고 세율만 곱한 후, 과세 구간에 따라 빼야 할 금액
1200만원 초과 ~ 4600만원 이하 구간에서의 누진 공제 금액
1200만원이 넘는 소득에 대한 세율 15%를 모든 소득 금액에 적용하면,
1200만원 이하의 구간에서는 15% - 6%인 9%에 대해 더 많은 세금이 계산
이 차감해야 할 금액(1200만원 * (15%-6%)인 1백8만원)
smoney = 12_000000 rate1 = 6 rate2 = 15 deduction = smoney * (rate2 - rate1)/100 print('누진 공제액:{:,}'.format(deduction)) // 수에 천단위마다 콤마가 표시된다 누진 공제액:108,000,000
mini prject 3
종합 소득 과세 표준 표 계산 출력
종합 소득 과세 표준 구간에 따른 기준 종합 소득
base = (0, 12_000000, 46_000000, 88_000000, 150_000000, 300_000000, 500_000000)
종합 소득 과세 표준 구간에 따른 세율
rate = [6,15,24,35,38,40,42]
구간에 따른 기준 소득 금액
base = (0, 12_000000, 46_000000, 88_000000, 150_000000, 300_000000, 500_000000)
구간에 따른 세율
rate = [6,15,24,35,38,40,42]
누진 공제 금액 계산
deduction = [] // 빈 누진 공세 금액 for i in range(len(base)-1): dmoney = 0 brate = rate[i+1] 각 구간에서의 누진 공제액을 계산해 합 for j in range(i+1): dmoney += (base[j+1] - base[j] * (brate - rate[j])/100) deduction.append(dmoney) // 누진 공제 리스트에 추가
mini project 4
종합 소득 세금 출력
taxrate = [(6,0),(15,1_080_000),(24,5_220_000), (35, 14_900_000), (38, 19_400_000), (40,25_400_000), (42,35_400_000)] base = (0, 12_000000, 46_000000, 88_000000, 150_000000, 300_000000, 500_000000) def getsection(income): if base[6] < income: section = 6 elif base[5] < income: section = 5 elif base[4] < income: section = 4 elif base[3] < income: section = 3 elif base[2] < income: section = 2 elif base[1] < income: section = 1 else: section = 0 return section income = int(input('종합 소득 금액 입력 >>>')) section = getsection(income) tax = income * taxrate[section][0]/100 - taxrate[section][1] print('종합 소득: {:,.0f}'.format(income)) print('세율:{}%'.format(taxrate[section][0])) print('세금:{:,.0f}'.format(tax)) ============ RESTART: C:/Users/study/파이썬 연습과제/iokp.py =========== 종합 소득 금액 입력 >>>40000000 종합 소득: 40,000,000 세율:15% 세금:4,920,000 >>>
디지털 형태의 정수 출력
mini project 6
0에서 5까지의 자릿수로 구성되는 정수를 디지털 정수 모양으로 출력
LCD = [[ "lllll", "l l", "l l", "l l", "lllll"], [ " l ", " ll ", " l ", " l ", " llll"], [ "lllll", " l", "lllll", "l ", "lllll"], [ "lllll", " l", "lllll", " l", "lllll"], [ "l l", "l l", "lllll", " l", " l"], [ "lllll", "l ", "lllll", " l", "lllll"]] ROW = 5 def printLCD(digit): for row in range(ROW): for i in range(len(digit)): num = int(digit[i]) print(LCD[num][row], end = ' ') print() def checkdgt(s): tag = True for c in s: if c not in '012345': tag = False break return tag snum = '7' while not checkdgt(snum): snum = input("0 - 5 자릿수로만 정수형태 1개 입력 >>") printLCD(snum) ============ RESTART: C:/Users/study/파이썬 연습과제/iokp.py =========== 0 - 5 자릿수로만 정수형태 1개 입력 >>2014 lllll lllll l l l l l l ll l l lllll l l l lllll l l l l l lllll lllll llll l >>>
실생활 게임을 코딩으로 구현
mini project 7
가위바위보게임
항목 앞의 키에는 승자, 값에는 패자의 손 모양을 기술
from random import choice madewin = {'가위' : '보', '바위' : '가위', '보' : '바위'} game = ['가위# 바위# 보 게임','가위','바위','보'] msg = ['비겼습니다', '축하합니다! 당신이 winner*^^*'] msg.append('아쉽지만, 컴퓨터가 이겼습니다') print((game[0] + '시작').center(55,'=')) while True: try: s = '0(종료), 1(가위), 2(바위), 3(보[자기]) 중 하나 선택 >>' num = int(input(s)) except: num = 1 if num == 0: break; if not( 0 <= num <=3): print('\t 입력이 잘못됐습니다. 다시하세용 ~~') continue; player = game[num] com = choice(game[1:]) if player == com: winner = 0 elif madewin[player] == com: winner = 1 else: winner = 2 print('당신: ', player, 'vs', '컴퓨터', com) print(msg[winner] + '\n') print('\n','종료합니다'.center(55,'=')) ============ RESTART: C:/Users/study/파이썬 연습과제/iokp.py =========== =====================가위# 바위# 보 게임시작==================== 0(종료), 1(가위), 2(바위), 3(보[자기]) 중 하나 선택 >>1 당신: 가위 vs 컴퓨터 가위 비겼습니다 0(종료), 1(가위), 2(바위), 3(보[자기]) 중 하나 선택 >>3 당신: 보 vs 컴퓨터 가위 아쉽지만, 컴퓨터가 이겼습니다 0(종료), 1(가위), 2(바위), 3(보[자기]) 중 하나 선택 >>0 =========================종료합니다========================= >>>
mini project 8
로또 번호 모의 실험
from random import sample from random import randint rank = {6 : ('1등', 1000000000), 5 : {1:('2등', 50000000), 0:('3등', 10000000)}, 4 : ('4등', 50000), 3 : ('5등', 5000) } def makenum(same): nums = winnum.copy() for i in range(6-same): nums.pop() while len(nums) != 6: n = randint(1,45) if n not in winnum: nums.add(n) return nums def getwinner(lotto): global bonus for i, item in enumerate(lotto): print('%c' % (ord('A') + i), end= ' ') win = winnum.intersection(item) if win: wincnt = len(win) print('당첨 번호 개수 %d, ' % wincnt, end='') printnums(win) if 3 <= wincnt: grade = rank[wincnt] if 5 == wincnt: if bonus in item: print('\t 보너스 번호 %d도 맞춤 !!! ' % bonus) grade = rank[wincnt][1] else: grade = rank[wintcnt][0] print('\t%s %s원' % (grade[0],grade[1])) else: print('\t 2개 이하 맞춰, 꽝!') else: print('모두 꽝!!!!') def printlotto(lotto): for i, item in enumerate(lotto): print('%c 자동' % (ord('A') + i), end = ' ') printnums(item) print() def printnums(nums): for num in sorted(nums): print('%02d' % num, end=' ') print() winnum = set(sample(list(range(1,46)), 7)) bonus = winnum.pop() print('당첨 번호:', end='' ) print(winnum) print('보너스 번호:',bonus) print() lottos = [] rank2num = winnum.copy() rank2num.pop(); rank2num.add(bonus) lottos.append(rank2num) rank3num = winnum.copy() rank3num.pop() while True: num = randint(1,45) if num != bonus and num not in rank3num: rank3num.add(num) break lottos.append(rank3num) for i in range(5): lottos.append(makenum(4 - i)) printlotto(lottos) getwinner(lottos) ============ RESTART: C:/Users/study/파이썬 연습과제/iokp.py =========== 당첨 번호:{38, 44, 12, 15, 28, 29} 보너스 번호: 4 A 자동 04 12 15 29 38 44 B 자동 11 12 15 38 41 44 C 자동 12 15 21 24 27 44 D 자동 02 03 12 15 35 37 E 자동 01 04 07 15 34 39 F 자동 04 08 13 20 22 31 A 당첨 번호 개수 5, 12 15 29 38 44 보너스 번호 4도 맞춤 !!! 2등 50000000원 B 당첨 번호 개수 4, 12 15 38 44 4등 50000원 C 당첨 번호 개수 3, 12 15 44 5등 5000원 D 당첨 번호 개수 2, 12 15 2개 이하 맞춰, 꽝! E 당첨 번호 개수 1, 15 2개 이하 맞춰, 꽝! F 모두 꽝!!!! >>>
반응형'Languages > python' 카테고리의 다른 글