[KG_KAIROS] 파이썬 강의_3(numpy)
2024.07.03
오늘은 class numpy를 복습하고
try:except를 통해 예외처리를 학습하였습니다.
그리고 행열의 기본인 matrix를 공부하였습니다,
try:
a=[1,2]
print(a[3])
4/0
except ZeroDivisionError:
print('0으로 나눌수없다')
except IndexError:
print('인덱싱 할 수 없다')
except Exception as e:
print('에러발생:',e)
이런식으로 예외처리 케이스를 두어 오류를 출력하여 확인할 수 있겠죠?
그러면 어제 배운 class와 오늘 배운 try:except를 응용하여 예제를 풀어보겠습니다,
class MyError(Exception):
pass
def say_nick(nick):
if nick =='바보':
raise MyError()
print(nick)
try:
say_nick('천사')
say_nick('바보')
except MyError:
print('허용되지 않은 별명')
물론 class를 사용하지 않고 함수만 불러왔지만 class 만드는것에 ㅎㅎ
자, 그리고 오늘의 미션!!! 카페의 매출표 작성 프로그램 코딩하기...!!!
coffee = np.array([90,33,59,89,33,54,76,20])
cake = np.array([70,30,50,66,23,48,24,5])
coffee_total = coffee*4100
print("coffee_total: ",coffee_total)
cake_total = cake*6800
print("cake_total:",cake_total)
day_total= coffee_total+cake_total
print("dat_total:",day_total)
coffee_sum=np.sum(coffee_total)
print("커피 총매출:",coffee_sum,"원 입니다.")
cake_sum=np.sum(cake_total)
print("케이크 총매출:",cake_sum,"원 입니다.")
coffee_mean=np.mean(coffee_total)
print("커피 평균 매출:",coffee_mean,"원 입니다.")
cake_mean=np.mean(cake_total)
print("케이크 평균 매출:",cake_mean,"원 입니다.")
coffee_max=np.max(coffee_total)
print("커피 가장 큰 매출 금액:",coffee_max,"원 입니다.")
cake_max=np.max(cake_total)
print("케이크 가장 큰 매출금액 :",cake_max,"원 입니다.")
coffee_min=np.min(coffee_total)
print("커피 가장 작은 매출 금액:",coffee_min,"원 입니다.")
cake_min=np.min(cake_total)
print("케이크 가장 작은 매출금액 :",cake_min,"원 입니다.")
day_max=np.argmax(day_total)
print("매출 가장 많은 날:",day_max+1,"일 입니다.")
day_min=np.argmin(day_total)
print("매출 가장 적은 날:",day_min+1,"일 입니다.")
#변경 못해먹...일별 판매수량....뿌에에ㅔㅔㅔㅔ
1차로 작성한 코드입니다. 내장함수를 이용해서 작성을 하였는데 사실 한줄로 표현하는게 더 이뻐 보이겠죠?
그래서 다시 수정해보면?
#커피와 케이크 일별매출구하기
#스타벅스 리스트에는 판매 개수가 들어있다.
#가격을 참고해서 커피와 케이크 각각 일별 매출을 구하라
#케이크단가 6,800, 커피단가 : 4,100
#판매개수
import numpy as np
coffee=[90,33,59,89,33,54,76,20]
cake = [70,30,50,66,23,48,24,5]
coffee=np.array(coffee)*4100
cake=np.array(cake)*6800
print(f'coffe : {coffee}')
print(f'cake : {cake}')
day_total=coffee+cake
print(f'day_total:{day_total}')
coffee_sum = np.sum(coffee)
cake_sum = np.sum(cake)
coffe_avr = int(coffee_sum/len(coffee))
cake_avr = int(cake_sum/len(cake))
print(f"커피의 총 매출은 : {coffee_sum}원 입니다.")
print(f"케이크의 총 매출은 : {cake_sum}원 입니다." )
print(f"커피의 평균 매출은 : {coffe_avr}원 입니다." )
print(f"케이크의 평균 매출은 : {cake_avr}원 입니다." )
간결하게 되겠죠?
이번엔 배열로 가봅시다.
1.
2.
3.
요래 됐거든예~~~
그리고 수업 마무리직전 문제를 내주셨는데 간단하게 작성해보았습니다.
같이 풀어 봐여.
[문제1]
정수 2개를 입력받아 첫번째 입력 받은 숫자부터 두번째 입력받은 숫자까지의 합을 구하시오. (단, 두번째 숫자는 첫번째 숫자보다 큰 숫자를 입력해야 합니다) 조건 : while문
첫번째 숫자를 입력하세요. 1
두번째 숫자를 입력하세요. 10
1+2+3+4+5+6+8+9+10 = 55
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11, 12, 13, 14, 15, 16, 17, 18, 19, 20])
# 문제 1: 3의 배수 찾기
m3 = x[x % 3 == 0]
print("3의 배수:", m3)
#문제2 : 4로 나누면 1이 남는 수
d4 = x[x%4 == 1]
print('4로 나누면 1이 남는 수: ',d4)
# 문제3 : 3으로 나누면 나누어지고, 4로 나누면 1이 남는 수
n3 = x[(x % 3 == 0) & (x%4 == 1)]
print(n3)
[문제2]
#문제 설명
#주사위 눈의 개수를 정한다.
#n과 m이 주사위를 굴려
#경우의 수를 뽜밥
n= int(input("첫번째 주사위:1~6"))
m= int(input("두번째 주사위:1~6"))
for i in range(1,n+1):
for j in range(1,m+1):
print(i,j)
문제 3번은
이해를 잘 못했지만 문자를 입력받아서 그 입력받은 알파벳 문자 전까지를 출력하는겁니다.
올리기만 해두겠습니다.
이상 금일 파이썬 후기를 마치겠습니다~