Day6. 파이썬 문제풀이 (2)

Junghwan Park·2023년 4월 13일
0

스터디노트

목록 보기
7/54

연산자(01)

상품 가격과 지불 금액을 입력하면 거스름 돈을 계산하는 프로그램을 만들어보자.
단, 거스름 돈은 지폐와 동전의 개수를 최소로 하고, 1원단위 절사한다.

money50000 = 50000; money10000 = 10000; money5000 = 5000; money1000 = 1000
money500 = 500; money100 = 100; money10 =10;

money50000Cnt = 0; money10000Cnt = 0; money5000Cnt = 0; money1000Cnt = 0
money500Cnt = 0; money100Cnt = 0; money10Cnt = 0;

productPrice = int(input('상품 가격 입력: '))
payPrice = int(input('지불 금액 : '))

if payPrice > productPrice:
    changeMoney = payPrice - productPrice # 거스름 돈
    changeMoney = (changeMoney // 10) * 10 # 1원 단위 절삭
    print('거스름 돈: {}(원단위 절사)'.format(changeMoney))
    if changeMoney > money50000:
        money50000Cnt = changeMoney // money50000
        changeMoney %= money50000

    if changeMoney > money10000:
        money10000Cnt = changeMoney // money10000
        changeMoney %= money10000

    if changeMoney > money5000:
        money5000Cnt = changeMoney // money5000
        changeMoney %= money5000

    if changeMoney > money1000:
        money1000Cnt = changeMoney // money1000
        changeMoney %= money1000

    if changeMoney > money500:
        money500Cnt = changeMoney // money500
        changeMoney %= money500

    if changeMoney > money100:
        money100Cnt = changeMoney // money100
        changeMoney %= money100

    if changeMoney > money10:
        money10Cnt = changeMoney // money10
        changeMoney %= money10

print('-' * 30)
print('50,000 {}장'.format(money50000))
print('10,000 {}장'.format(money10000))
print('5,000 {}장'.format(money5000))
print('1,000 {}장'.format(money1000))
print('500 {}개'.format(money500))
print('100 {}개'.format(money100))
print('10 {}개'.format(money10))
print('-' * 30)

왜 때문인지 결과값이 이상하게 출력되고 있다 재도전 해봐야 할 것 같다!


연산자(02)

국어, 영어, 수학 점수 입력 후 총점, 평균, 최고점수 과목, 최저점수 과목,
그리고 최고 점수와 최저 점수의 차이를 각각 출력해보자

korScore = int(input('국어 점수 입력 : '))
engScore = int(input('영어 점수 입력 : '))
matScore = int(input('수학 점수 입력 : '))

totalScore = korScore + engScore + matScore
avgScore = totalScore / 3

maxScore = korScore
maxSubject = '국어'

if engScore > maxScore:
    maxScore = engScore
    maxSubject = '영어'

if matScore > maxScore:
    maxScore = matScore
    maxSubject = '수학'

minScore = korScore
minSubject = '국어'

if engScore < minScore:
    minScore = engScore
    minSubject = '영어'

if matScore < minScore:
    minScore = matScore
    minSubject = '수학'

difScore = maxScore - minScore

print('총점 : {}'.format(totalScore))
print('평균 : %.2f' % avgScore)
print('-' * 30)
print('최고 점수 과목(점수) : {}({})'.format(maxSubject, maxScore))
print('최저 점수 과목(점수) : {}({})'.format(minSubject, minScore))
print('최고, 최저 점수 차이 : {}'.format(difScore))
print('-' * 30)

연산자(03)

시, 분, 초를 입력하면 초로 환산하는 프로그램을 만들어보자.

hou = int(input('시간 입력: '))
min = int(input('분 입력: '))
sec = int(input('초 입력: '))

print('{}초'.format(format(hou * 60 * 60 + min * 60 + sec, ',')))    # format함수로 3자리씩 끊어준다 -> 문자로 인식

금액, 이율, 거치기간을 입력하면 복리계산하는 복리계산기 프로그램을 만들어보자.

money = int(input('금액 입력: '))
rate = float(input('이율 입력: '))
term = int(input('기간 입력: '))

targetMoney = money

for i in range(term):
# targetMoney * rate * 0.01   # 1년의 이자
    targetMoney += (targetMoney * rate * 0.01)	# 백분률 0.01 곱 !

targetMoneyFormated = format(int(targetMoney), ',')

print('-' * 30)
print('이율: {}'.format(rate))
print('원금: {}'.format(format(money),','))
print('{}년 후 금액: {}원'.format(term, targetMoneyFormated))
print('-' * 30)

연산자(04)

고도가 60m 올라갈 때마다 기온이 0.8도 내려 간다고 할 때 고도를 입력하면 기온이 출력되는 프로그램을 만들어보자.(지면온도: 29도)

baseTemp = 29
step = 60
stepTemp = 0.8

height = int(input('고도 입력: '))

targetTemp = baseTemp - (height // step * 0.8)

if height % step != 0:
    targetTemp -= stepTemp

print('지면 온도: {}도'.format(baseTemp))
print('고도 %dm의 기온: %.2f도' % (height, targetTemp))

197개의 빵과 152개의 우유를 17명의 학생한테 동일하게 나눠 준다고 할 때,
한 명의 학생이 갖게 되는 빵과 우유 개수를 구하고 남는 빵과 우유 개수를 출력하자.

bread = 197
milk = 152
studentCnt = 17

print('학생 한명이 갖게되는 빵 개수 : {}'.format(bread // studentCnt))
print('학생 한명이 갖게되는 우유 개수 : {}'.format(milk // studentCnt))

print('남는 빵 개수 : {}'.format(bread % studentCnt))
print('남는 우유 개수 : {}'.format(milk % studentCnt))

연산자(05)

다음 내용을 참고해서 백신 접종 대상자를 구분하기 위한 프로그램을 만들어 보자.
'19세 이하 또는 65세 이상 이면 출생 연도 끝자리에 따른 접종
그렇지 않으면 하반기 일정 확인'

inputAge = int(input('나이 입력: '))

if inputAge <= 19 or inputAge >= 65:
     endNum = int(input('출생 연도 끝자리 입력: '))
     if endNum == 1 or endNum == 6:
         print('월요일 접종 가능!!')
     elif endNum == 2 or endNum == 7:
         print('화요일 접종 가능!!')
     elif endNum == 3 or endNum == 8:
         print('수요일 접종 가능!!')
     elif endNum == 4 or endNum == 9:
         print('목요일 접종 가능!!')
     elif endNum == 5 or endNum == 0:
         print('금요일 접종 가능!!')

else:
     print('하반기 일정 확인하세요.')

길이(mm)를 입력하면 inch로 환산하는 프로그램을 만들어보자.(1mm = 0.039 inch)

byInch = 0.039
lengthMM = int(input('길이(mm) 입력: '))
lengthInch = lengthMM * byInch
byFeet = 0.00328084
lengthFeet = lengthMM * byFeet

print('{}mm -> {}inch'.format(lengthMM, lengthInch))
print('{}mm -> {}feet'.format(lengthMM, lengthFeet))

이 글은 제로베이스 데이터 취업 스쿨의 강의자료 일부를 발췌하여 작성되었습니다.

profile
안녕하세요 반갑습니다^^

0개의 댓글