제로베이스 데이터 취업 스쿨 - 3일차(6/4~5)(연산자)

수야·2023년 6월 5일
0

산술 연산자(곱셈, 나눗셈)

곱셈 연산자

나눗셈 연산자


나눗셈연산자 쓰면 결과물은 항상 flaot.
정수를 받고싶으면 int 써야함

실습

kor=input('국어 점수 :')
eng=input('영어 점수 :')
math=input('수학 점수 :')
summ=kor+eng+math
aver=(int(kor)+int(eng)+int(math))/3

print(f'국어 점수 {kor}'
      f'\n영어 점수 {eng}'
      f'\n수학 점수 {math}'
      f'\n합계 {summ}'
      f'\n평균 {aver}'
      '\n평균 %.2f'%aver)

산술 연산자(나머지와 몫)

나머지 연산자


/가 아니라%만 쓰면 몫 안나오고 나머지만 나옴

나머지와 몫한번에 구하기


divmod 첫번째꺼로 두번째꺼를 나누게됨
그래서 결론은 몫이 인덱스 0, 나머지가 인덱스 1이됨

실습

allStudent=int(input('전체 학생 수 : '))
oneGroup=int(input('한 모둠 학생 수 : '))
seperate=divmod(allStudent,oneGroup)
print(f'전체 학생 수 : {allStudent}'
      f'\n한 모둠 학생수 : {oneGroup}',
      '\n모둠 수 : {}'.format(seperate[0]),
      '\n남는 학생 수 : {}'.format(seperate[1]))

#123개의 사과를 4개씩 직원들한테 나누어주려고 한다.
#최대 나누어 줄 수 있는 직원 수와 남는 사과 개수를 출력해보자.

apple=123
personApple=4
result=divmod(apple,personApple)
print('사과를 나누어 줄 수 있는 최대 직원 수 : {}'.format(result[0]))
print('남는 사과 개수 : {}'.format(result[1]))

산술연산자(거듭제곱)

거듭제곱 연산자


** 뒤에가 n승이 된다

제곱근 구하기

math 모듈의sqrt() 함수와 pow()함수


sqrt는 제곱근을 구하는거고(2제곱 했을떄의 근. 그 외 제곱근은 위에 공식(n**(1/m))을 써야함)
pow는 거듭 제곱을 구하는 거임(n,a)n의 a승

실습

'원'에다가 콤마찍는법 format(콤마찍고자하는 결과값, ',')
이건 이제 str값임.

복합연산자

실습

rainAmount=30
print('1월 누적 강수량 : {}mm'.format(rainAmount))

rainAmount+=45
print('2월 누적 강수량 : {}mm'.format(rainAmount))


rainAmount+=47
print('3월 누적 강수량 : {}mm'.format(rainAmount))

rainAmount+=55
print('4월 누적 강수량 : {}mm'.format(rainAmount))

rainAmount+=65
print('5월 누적 강수량 : {}mm'.format(rainAmount))

rainAmount+=100
print('6월 누적 강수량 : {}mm'.format(rainAmount))

rainAmount+=128
print('7월 누적 강수량 : {}mm'.format(rainAmount))

rainAmount+=209
print('8월 누적 강수량 : {}mm'.format(rainAmount))


rainAmount+=204
print('9월 누적 강수량 : {}mm'.format(rainAmount))

rainAmount+=186
strRainAmount=format(rainAmount,',')
print('10월 누적 강수량 : {}mm'.format(strRainAmount))

rainAmount+=67
strRainAmount=format(rainAmount,',')
print('11월 누적 강수량 : {}mm'.format(strRainAmount))

rainAmount+=25
strRainAmount=format(rainAmount,',')
print('12월 누적 강수량 : {}mm'.format(strRainAmount))
print('-'*20)
print(f'연간 누적 강수량 :{strRainAmount}mm')
averRain=rainAmount/12
print('연간 누적 강수량 :%.2fmm'%averRain)

연습문제

연산자(1)

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

#지폐, 동전 구성
#지폐 : 50000원, 10000원, 5000원, 1000원
#동전 : 500원, 100원, 10원
money50000=50000
money10000=10000
money5000=5000
money1000=1000
money500=500
money100=100
money10=10

money50000Cng=0
money10000Cng=0
money5000Cng=0
money1000Cng=0
money500Cng=0
money100Cng=0
money10Cng=0

productCost=int(input('상품 가격 입력:'))
payCost=int(input('지불 금액:'))
changeCost=((payCost-productCost)//10)*10
print(f'거스름 돈: {changeCost}(원단위 절사)'
      f'\n','-'*30)
if changeCost >money50000:
    money5000Cng=changeCost//money50000
    changeCost-=money50000*money5000Cng

if changeCost >money10000:
    money1000Cng=changeCost//money10000
    changeCost-=money10000*money1000Cng

if changeCost > money5000:
    money5000Cng = changeCost // money5000
    changeCost -= money5000 * money5000Cng


if changeCost > money1000:
    money1000Cng = changeCost // money1000
    changeCost -= money1000 * money1000Cng


if changeCost > money500:
    money500Cng = changeCost // money500
    changeCost -= money500 * money500Cng



if changeCost > money100:
    money100Cng = changeCost // money100
    changeCost -= money100 * money100Cng

if changeCost > money10:
    money10Cng = changeCost // money10
    changeCost -= money10 * money10Cng


    print(f'50,000 {money50000Cng}장')
    print(f'10,000 {money10000Cng}장')
    print(f'5000 {money5000Cng}장')
    print(f'1000 {money1000Cng}장')
    print(f'500 {money500Cng}개')
    print(f'100 {money100Cng}개')
    print(f'10 {money10Cng}개')

개오바야

연산자(2)

#국어, 영어, 수학 점수 입력 후 총점, 평균, 최고점수과목, 최저점수 과목
#그리고 최고 점수와 최저점수의 차이를 각각 출력해보자
kor=input('국어 점수 입력 :')
eng=input('영어 점수 입력 :')
math=input('수학 점수 입력 :')
allSum=int(kor)+int(eng)+int(math)
aver=allSum/3

maxScore=kor
maxSub='국어'
if eng > maxScore:
      maxScore=eng
      maxSub='영어'
if math > maxScore:
      maxScore=math
      maxSub='영어'

minScore=kor
minSub='국어'
if eng < minScore:
      minScore=eng
      minSub='영어'
if math < minScore:
      minScore=math
      minSub='영어'
difScore=int(maxScore)-int(minScore)
print(f'총점: {allSum}'
      '\n평균: %.2f'%aver,
      '\n','-'*30,
      f'\n최고 점수 과목(점수): {maxSub}({maxScore})'
      f'\n최저 점수 과목(점수): {minSub}({minScore})'
      f'\n최고, 최저 점수 차이: {difScore}',
      '\n','-'*30)

if구문을 꽤 많이 쓰는군....휴휴...

profile
수야는 코린이에서 더 나아갈거야

3개의 댓글

comment-user-thumbnail
2023년 6월 6일

2023-06-06 복습 완료
저놈의 용돈 인상이랑....
거스름돈......

답글 달기
comment-user-thumbnail
2023년 6월 8일

2023-06-08
복습완료
거스름돈 귀차나

답글 달기
comment-user-thumbnail
2023년 6월 10일

2023-06-10
복습완료
거스름돈 계산하는거에서 print는 다 뒤로 빼야하는 것이였음.
혹 1000원으로 거스름돈이 안나와도 0장이라고 말해야하니까.

답글 달기