0. 개요
오늘은 파이썬 개인과제 하면서 풀이했던 내용 기록하고, 파이썬 강의들은 내용을 다시 정리하려고 한다.
그리고 오늘 읽었던 아티클 스토리가 인상 깊어서 그것도 오늘 TIL 로 쓰려고 한다.
1. 오늘의 아티클 주제 :실험 조직으로 거듭나기 : 검증한 '만'한 가설은?
실험 조직으로 거듭나기: 2 검증할 ‘만’한 가설은? | 요즘IT
오늘은 실험 조직으로 거듭나기 2편으로, 가설의 뼈대를 만드는 방법을 살펴보겠습니다. 그로스(Growth)와 실험 문화를 팀에 도입하고 싶은 분, '무엇'을 '어떻게' 검증해야 할지 헷갈리는 분, 가설
yozm.wishket.com
원래 했던 아티클들이 꽤 데이터 리터러시와 관련 있기도 한데, 너무 좀 쉬운 주제라 계속 쓰지는 않았다. 아는 걸 계속 쓰는 것도 중요하긴 하지만, 기왕이면 새로배운 거랑 같이 하고 싶어서 이다.
이 아티클의 주제로 말할 거 같으면 '가설을 검증하기 위해서 어떤 수단을 쓰고, 어떻게 가설을 세워야하느지.'에 대해서 배울 수 있었다. 그러고보니 저번 온보딩 주간에 E-커머스와 관련해서 이제 여러 가설들으 세웠었는데 아마 다음 프로젝트때도 한다면 도움이 되지 않을까 싶어서 좋았고, 그런 의도로 선정하셨다고 한다.
그때, SQL 수식 쓰는 것도 어려워서 인터넷에 뒤지고 뒤지면서 어떻게든 썼는데... 그러다보니까 어떤 데이터의 추이만 볼 뿐이지 막상 가설을 세우진 않았던거 같다. 근데 다른 팀보니까 시나리오와 가설에 대한 얘기를 꺼낸거보니 이번에 선정한 주제가 막상 아쉬워진다.
가설이 없다보니까 막상 뭘해야될지도 모르고 자료만 무작정 뒤졌는데, 그게 꽤 시간을 잡아먹은 거 같아서 아쉬웠다. 물론 대부분의 시간은 SQL 과 관련해서 수식이 맞는지 찾아보고 그랬지만. 그러한 의미에서 해당 아티클이 도움되었다.
2. 파이썬 개인과제 관련한 풀이 기록
오늘부터 개인과제가 일주일 동안 주어졌는데, 기왕 풀어보는 거 풀이과정이 없으면 아쉬울거 같아서 써보기로 했다.
# 예시 데이터
numbers = [10, 20, 30, 40, 50]
def calculate_avg(numbers):
# 여기에 코드를 작성하세요
return total_avg
total_avg = calculate_avg(numbers)
print("숫자들의 평균:", total_avg)
일단은 첫번째, numbers 에 대한 정의가 필요하고 또한 numbers 내의 다른 값을 넣기 위해서 total_avg 를 정의해야했다.
그러기 전, 내가 그동안 파이썬에서 평균을 구하는 내용은 좀 기억한다. 아마 average = sum / len(numbers) 보통 평균 구할때, 이러한 수식과 함수를 사용했다. 이걸 참고하면 괜찮지 않을까 싶다.
그러면 total_avg 는 결론적으로 sum 에 대한 정의가 필요했다. 음... 글쎄 어떨지는 모르겠지만, 일단은 기본 함수들 보니까 answer = 0 으로 설정하는데, 일단은 sum = 0 으로 시작했다.
def calculate_avg(numbers):
sum = 0
#다음은 평균 AVG 를 구해야한다.
return total_avg
total_avg = calculate_avg(numbers)
print("숫자들의 평균:", total_avg)
음.. 일단은 다른 수가 다르니까 평균값을 구하는 함수를 만들지만, 혹시나 반복이 있을까봐 For 구문을 써보기로 했다. 음.. For 구분의 형식은 이렇다고 들었다. 강의 자료 들었던거 복습하자면...
for 변수 in iterable:
실행할 코드
#iterable = 값을 저장할 변수
#for 문이 반복될때 사용하는 코드
그러면 안에 들어갈 함수는 이렇게 넣어봤다.
def calculate_avg(numbers):
sum = 0
for i in numbers :
sum += i # +=는 계속해서 더한다는 뜻 / *=는 계속해서 곱한다는 뜻
# 평균 값을 구할 자리
return total_avg
total_avg = calculate_avg(numbers)
print("숫자들의 평균:", total_avg)
일단은 이러면 평균 값을 구할 자리는 마련되니까... 반복 문이 실행되고...?
음, 평균은 간다했다. 항상 다른 파이썬 구문들 보면 answer = sum / len(numbers) 이랬으니까. 그러면 해당 # 자리에 다음과 같은 함수식을 넣어봤다.
def calculate_avg(numbers):
sum = 0
for i in numbers :
sum += i
total_avg = sum / len(numbers)
return total_avg
total_avg = calculate_avg(numbers)
print("숫자들의 평균:", total_avg)
자 그러면, 이제 한번 테스트 겸 돌려봤다.
왜 이게 안된다고 하지? 흐음.... Error 메시지에 'numbers' 값이 정의되어 있지 않다고 했다.. 아 그렇지, 샘플 값을 넣고 다시 돌려봤다. 식은 그럼 다음과 같이 써야했다.
numbers = [10, 20, 30, 40, 50]
def calculate_avg(numbers):
sum = 0
for i in numbers :
sum += i
total_avg = sum / len(numbers)
return total_avg
total_avg = calculate_avg(numbers)
print("숫자들의 평균:", total_avg)
그 전에 지정해준 값이 있어서 numbers 로 이어갔다. 그러면 값이 이렇게 나온다.
원래 나와야 하는 값은 150 / 5 = 30 이 총 평균값이다. numbers 를 정의 한 뒤에 다시 돌리면...!
그럼 2번 문제다. 이미 1번, 2번 푼것도 힘든데 어떻게 그걸 5번까지 풀지...? 아 솔직히 좀 막막하다... 파이썬 강의로도 부족하던데... ㅜ
가장 낮은 값과 가장 높은 값. 가장 명료하다. Max() - Min() 은 일교차 차이일 테니까. 어.. Max 랑 Min 을 넣어두는 건 좋은데, 그걸 그냥 max()-min() 이렇게 넣으면 절대로 안나온다는 점이다.
# 예시 데이터
numbers = [10, 20, 30, 40, 50]
def calculate_diff_temperature(numbers):
# 여기에 코드를 작성하세요
return diff_temp
diff_temp= calculate_diff_temperature(numbers)
print("일교차:", diff_temp)
그러니까 이렇게 넣으면 작동이 안된다는 거지... 근데 지금 그렇게 푸니까 갑자기 잘 나온다 ㅜㅜ 너무 억울한데..?
아니 왜... 이렇게 해서야 나오는 걸까? ㅜㅜ 아 진짜 너무 열받았는데 ㅜㅜ 근데 내가 막상 짠 식은 이렇다. 일단은 이건 최근에 푼거고, 나중에 식 세워본 것도 일단은 같이 올려봐야지
[풀이 1]
numbers = [10, 20, 30, 40, 50]
def calculate_diff_temperature(numbers):
diff_temp= max(numbers) - min(numbers)
return diff_temp
diff_temp= calculate_diff_temperature(numbers)
print("일교차:", diff_temp)
[풀이 2]
numbers = [10, 20, 30, 40, 50]
def calculate_diff_temperature(numbers):
diff_temp = 0
temp1 = min(numbers)
temp2 = max(numbers)
diff_temp = max(numbers) - min(numbers)
return diff_temp
diff_temp= calculate_diff_temperature(numbers)
print("일교차:", diff_temp)
지금 보니까.. 왜 굳이 temp1 이랑 temp2를 넣은거지? 진짜로 풀다가 헷갈렸나보다. 저것도 작동되긴 하는데, 굳이 그럴 필요는 없다. 왜려 풀이 1번이 더 간결하니까.
3번을 푸는 중인데.. 아 이거 너무 어렵다.. ㅜ 진짜로 헷갈려서 다시 해보고 있는데 막상 풀려니까 안되네... 내일 마저 풀고, 최대한 5번까지는 진도 쭉쭉 빼고 ADsP 나 쭉쭉 듣고 4,5주차 파이썬도 좀 정리해야겠다. def 함수가 4주차때 나와서... 필요하던 참이니까.
sales_data = {"apple": 50, "orange": 2, "banana" : 30}
def find_top_seller(sales_data):
max_sales = max(sales_data,values)
top_product= sales_data[max_sales]
return top_product, max_sales
print("가장 많이 판매된 제품과 수량 :", find_top_seller(sales_data))
지금까지 푼게 이건데, values 에 대한 정의가 없다고 한다... 딕셔너리 인데... 내가 모르는 게 있는걸까?
일단 다시 점검했다. 가장 큰 문제점은 values 가 없다는 건데.... 그럼 그 values를 만들어줘야 했다.
sales_data = {"apple": 50, "orange": 2, "banana" : 30}
def find_top_seller(sales_data):
values = sales_data.values()
max_sales = max(values)
return max_sales
print("가장 많이 판매된 제품과 수량 :", find_top_seller(sales_data))
values 에 대해서 다시 정의 했다. 딕셔너리 내의 values 는 결국 sales_data의 values고, max_sales는 결론적으로 가장 큰 values 니까, max(values) 인거다. 그러면 반환하면 일단은 이렇게 나온다.
그럼 다음번에 할건 TOP_PRODUCT 다만, 조심해야 할건... max_sales 의 키를 구해야한다는 것이다. 거기다가 max(keys)를 하면 부적합하게 나온다. 해당 정의로 가버리면 그냥 apple 이 나올 가능성이 크기 때문이다. 그렇기에 값을 바꿔도 문제가 없도록 푸는게 맞을 거 같다.
이게 맞는거 같은데? 안나와서 다른 걸 해봤다. 찾아보니 value 값에서 key를 뽑거나, key 에서 value 를 뽑을 었다는 걸 찾았다.
[Python] 딕셔너리key값으로 value값 찾기 ,value값으로 key값 찾기
📍딕셔너리형에서 key값과 value값 서로 바꾸기
velog.io
### key 값으로 value 구하는 공식
for key, value in dictionary.item():
if key == (변수) :
print(value)
### value 로 key 를 구하는 공식
for key, value in dictionary.item():
if value == (변수) :
print(key)
다시 복습하자면... item() 이 함수는 키와 값을 동시에 갈 수 있는 함수였다고 한다. 그래서 item을 자주쓰는구나... 키,밸류를 보두 내보낼 수 있어서...
그러면 요청한게 가장 많이 팔린 제품의 가격과 이름.
sales_data = {"apple": 50, "orange": 2, "banana" : 30}
def find_top_seller(sales_data):
for key,value in sales_data.item() :
#반복할 코드
return top_product, max_sales
print("가장 많이 판매된 제품과 수량 :", find_top_seller(sales_data))
일단은 여기까지! 반복할 코드...는 뭐가 있을까? 차근히 생각해본다면 value 는 max(sales_data.values) 가 되어야 할 것이고, key 는 그대로 이를 따라갸아 할 것이다.
만약의 value 가 함수 맥스 값이라면 key 랑 value를 모두 내보낼 수 있다.
sales_data = {"apple": 50, "orange": 2, "banana" : 30}
#상품 카테도리 : 갯수
def find_top_seller(sales_data):
for key,value in sales_data.items():
if value == max(sales_data.values()):
return top_product, max_sales
print("가장 많이 판매된 제품과 수량 :", find_top_seller(sales_data))
근데 꼭 저 top_product 랑 max_sales 를 써야하나? value 랑 key 가 더 보기 편한데... 일단은 값을 바꿀 수 있다면 그러기로 했다.
sales_data = {"apple": 50, "orange": 2, "banana" : 30}
#상품 카테도리 : 갯수
def find_top_seller(sales_data):
for key,value in sales_data.items():
if value == max(sales_data.values()):
return key, value
print("가장 많이 판매된 제품과 수량 :", find_top_seller(sales_data))
이렇게 작성했고, 그럼 다음과 같이 나온다.
혹시 내가 틀렸을 까봐 다른 걸로 바꿔봤다.
일단은 이렇게 해서 3번 문제까지! 오늘의 TIL 소감 정리.
오늘 파이썬 푸는데 하나도 모르겠다.. 엄청 큰일인데....?
일단은 부랴부랴 찾기는 했는데 나머지 함수들을 어떻게 써야할지... 일단 그건 내일 SQL 이랑 풀면서 좀 생각해봐야겠다..
이번주는 ADsP 랑 SQLD 도 번갈아가면서 들을 예정. 이렇게 해서 하나하나 쌓이면 좋은 결과가 나오길 바란다.
아, 깜빡했다 루모랑 모치스 플랫폼 비교 써야하는데... ㅜ
'𝐓𝐈𝐋 (𝐅𝐨𝐫 𝐂𝐚𝐦𝐩) > 𝐂𝐎𝐃𝐈𝐍𝐆 (𝐒𝐐𝐋, 𝐏𝐘𝐓𝐇𝐎𝐍)' 카테고리의 다른 글
[𝟐𝟓.𝟎𝟑.𝟏𝟐] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟏𝟔 (0) | 2025.03.12 |
---|---|
[𝟐𝟓.𝟎𝟑.𝟏𝟏] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟏𝟓 (0) | 2025.03.11 |
[𝟐𝟓.𝟎𝟑.𝟎𝟕] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟏𝟑 (0) | 2025.03.07 |
[𝟐𝟓.𝟎𝟑.𝟎𝟔] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟏𝟐 (0) | 2025.03.06 |
[𝟐𝟓.𝟎𝟑.𝟎𝟓] 𝐓𝐈𝐋 𝐍𝐎𝐓𝐄 𝟏𝟏 (0) | 2025.03.05 |