10.[python기초 문제풀이]연산자(6.7)

Sooyeon·2023년 6월 8일

Python

목록 보기
10/22
post-thumbnail

[Python 기초 문제풀이]

  • 연산자(01-05)

연산자(01)

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

#지폐,동전 구성
#지폐:50,000원 , 10,000원, 5,000원, 1,000원
#동전: 500원 , 100원, 10원 

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
    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(money50000Cnt))
print('10,000 {}장'.format(money10000Cnt))
print('5,000 {}장'.format(money5000Cnt))
print('1,000 {}장'.format(money1000Cnt))
print('500 {}개'.format(money500Cnt))
print('100 {}개'.format(money100Cnt))
print('10 {}개'.format(money10Cnt))
print('-' *30)

상품 가격 입력 : 35862
지불 금액 : 100000
거스름 돈: 64130(원단위 절사)
------------------------------
50,000 1장
10,000 1장
5,000 0장
1,000 4장
500 0개
100 1개
10 3개
------------------------------

➜ 지폐별 변수 지정 및 지폐 가격 기입
➜ 지폐별 몇장이 필요한지 기입할 변수 생성
ㄴ ex)money10000cnt

➜ 거스름돈 // 지폐별금액 => 몫은 지폐별 몇장이 필요한지 반환
➜ 거스름돈 % 지폐별금액 => 나머지는 거스름돈

연산자(02)

kor= int(input('국어 점수 입력: '))
eng= int(input('영어 점수 입력: '))
mat= int(input('수학 점수 입력: '))
totalScore= kor+eng+mat
avgScore =totalScore/3

print('총점: {}'.format(totalScore))
print('평균: %.2f' %avgScore)
print('-' * 40)

maxScore= kor
maxSub='국어'

if eng > maxScore:
    maxScore = eng
    maxSub = '영어'

if mat > maxScore:
    maxScore = mat
    maxSub ='수학'

minScore = kor
minSub ='국어'

if eng < minScore:
    minScore = eng
    minSub ='영어'

if mat < minScore:
    minScore=mat
    minSub= mat

difScore= maxScore -minScore

print('최고 점수 과목(점수): {}({})'.format(maxSub,maxScore))
print('최저 점수 과목(점수): {}({})'.format(minSub,minScore))
print('최고, 최저 점수 차이 : {}'.format(difScore))

국어 점수 입력: 67
영어 점수 입력: 85
수학 점수 입력: 90
총점: 242
평균: 80.67
----------------------------------------
최고 점수 과목(점수): 수학(90)
최저 점수 과목(점수): 국어(67)
최고, 최저 점수 차이 : 23

➜ 어느 하나의 과목이 최대 혹은 최저 점수라고 설정하고,조건문 작성을 통해서 결과 반환

연산자(03)

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

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

print('{}초'.format(format(hou *60 * 60 + (min *60) +sec, ',')))


시간 입력: : 9
분 입력: : 45
초 입력: : 51
35,151초


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

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

finalMoney = money

print('-' * 30)

for i in range(term):
    finalMoney +=  (finalMoney * rate *0.01)

finalMoneyf = format(int(finalMoney),',')

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


금액 입력 : 1500000
이율 입력 : 4.3
기간 입력 : 5
------------------------------
이율: 4.3%
원금: 1,500,000원
5년 후 금액 : 1,851,453원
------------------------------

➜ 천만원 단위 콤마(,) 표현하기
➜ format(number, ',')
➜ 이후 해당 결과의 타입은 str으로 계산은 어렵다.

연산자(04)

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

baseTemp=29
step =60
stepTemp =0.8

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

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

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

print('지면 온도: 29')
print('고도 %dm의 기온: %.2f'  % (heigt,targetTemp))

고도 입력: 720
지면 온도: 29
고도 720m의 기온: 19.40



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

milk =152
student =17


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

학생 한명이 갖게되는 빵 개수 : 11
학생 한명이 갖게되는 우유 개수 : 8
남는 빵 개수 : 10
남는 우유 개수 : 16

연산자(05)

#1.다음 내용을 참고해서 백신 접종 대상자를 구분하기 위한 프로그램을 만들어 보자.


myInput=int(input('나의 입력 : '))

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

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

나의 입력 : 65
출생 연도 끝자리 입력: 4
목요일 접종 가능!!

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


length = int(input('길이(mm) 입력 :'))
inchNum= length *0.039

print(' {}mm -> {}inch'.format(length,inchNum))

길이(mm) 입력 :18
 18mm -> 0.702inch

0개의 댓글