카테고리 없음

[TIL 20]

LHJ_ 2024. 12. 12. 23:56

코드 카타

SELECT Year(sales_date) as YEAR,
       MONTH(sales_date) as MONTH, gender, count(distinct ui.user_id) as users 
       #~~한 회원수를 구하는 것이기 때문에 구매 목록에 같은 날 물품을 여러개 산 회원 아이디의 중복을 빼야 함.
       #년,월,성별 정보 별로 묶었기 때문에 개개인의 아이디는 중요하지 않음
FROM online_sale os LEFT JOIN user_info ui on ui.user_id=os.user_id
WHERE gender is not null
GROUP BY 1,2,3
ORDER BY 1,2,3

online_sale에 있는 테이블이 메인

회원이 구매한 물건 수를 물어보고 있고, user_info의 정보를 online_sale과 공통되는 값을 저장하면 중복되는 값이 많아 메모리 효율성이 적어지기 때문에 user_info 정보를 다른 테이블에 저장하고 필요할 때 online_sale 테이블에 붙여서 사용!!!!!!

그 때문에!!!!!!!!!!!!!!!!!!!!!os가!!!!!!!!!!!!!왼쪽에 있는 테이블이라고 생각했음 아아악!!!!

개인과제 3번

 inventory_dict  = {'Apple':90, 'Banana': 60, 'Orange': 80}
 def maintain_inventory(data_dict, item, update):
    if item in data_dict:  #item의 값이 inventory_dict이 안에 있으면
			   #여기서 item의 값은 'Apple'이라는 키 값
       data_dict[item]=update   #dict 안에 있는 값을 수정
       print('기존 품목 %s을 업데이트 합니다.'%item)    #함수 내부에서 바로 print 가능
    else :
       data_dict[item]=update   #없으면 dict 안에 추가 / 수정 코드 == 추가 코드
       print('새로운 품목 %s이 입고 되었습니다.'%item)
    for a,b in inventory_dict.items():
      print('현재 %s 재고는 %d%%있습니다.'%(a, b))


maintain_inventory(inventory_dict, 'Melon', 40) 
# print를 쓰면 안 됨.
# 함수 안에서 이미 print를 해줬기 때문. 함수 외부에 있는 print()에 처리해줄 값이 없어 none을 출력.

함수 내부에 return 값이 없어도 됨.

함수 내부에서 바로 print() 함수를 쓸 수 있음.

print () 안에서 %를 쓰려면 %를 두 개 써야함.

 

return a, b와 같이 두 개의 값을 출력 가능

 

return으로 하려면 b=[]를 할당해주고 for 문에 출력 되는 값을 b에 적재하여 출력.

적재되는 수가 많아지면 비효율적임

a = 10
b = 3.14

print("a는 %d, b는 %f"%(a,b))
print("a는 {}, b는 {}".format(a,b)) #포맷
print(f"a는 {a}, b는 {b}") #f스트링
#출력값은 모두 동일

위의 첫번째 방식은 비효율적이므로 f-string을 사용하는 게 좋음

 

Pass 와 Continue 차이점

Pass Continue break
a=0
for b in range(4) :
    pass
    a+=1
print(a)
a=0
for b in range(4) :
    continue
    a+=1
print(a)
a=0
for b in range(4) :
    break
    a+=1
print(a)
결과 : 4

=> pass는 없는 취급
결과 : 0

=> continue는 for의 시작으로 다시 돌아감.
결과 : 0

=> b에 0 값만 할당이 되고 바로 종료
loop가 한 번만 돌았음

 

함수

긴 길이 코드를 함수 형태로 만들어 놓고 함수 호출

입력-> 원하는 처리(계산식) -> 출력

필요성 : 코드 재사용, 유지보수 용이, 모듈화, 가독성 향상

 

def 이름(빙수)

  return 빙수 = 빙수 +1

print(이름(2))

 

출력 : 3

 

빙수는 함수 내부에서 사용하는 변수이고 print()에 있는 2가 빙수에 들어가서 함수 내부에 있는 계산식의 결과를 출력

 

더보기

하루의 적당한 양으로 규칙적으로 생활하는 것도 좋지만, 오늘 처럼 아픈 경우가 생기면 하루에 해야할 일을 못할 수도 있으니 시간이 남으면 다음날에 하기로 하는 것을 가져오는 것이 좋은 거 같음..

아니! 할 일을 하루에 다 끝내면 사실 문제가 없다!!!!!!!! 걍 매일 할 일을 미루지 말자 별별