<aside>

Reviewing The Python Session & Assignments 3

Reviewing The Python Session & Assignments 4

↑ Click the Page

</aside>

<aside> <img src="notion://custom_emoji/b602c9b4-c478-4904-8b80-95c0ecff1e9f/2020aba3-9a4b-801f-a730-007ab259a990" alt="notion://custom_emoji/b602c9b4-c478-4904-8b80-95c0ecff1e9f/2020aba3-9a4b-801f-a730-007ab259a990" width="40px" />

칭찬은 연료다! 다음 난이도로 가자 🚀

image.png

고비를 넘으면 성장의 증거가 된다는 말이 있다.

오늘은 혜민 튜터님께 개인 과제에 대해 예상치 못할 만큼 따뜻하고 긍정적인 피드백을 받았다.

특히 내가 가장 어려워했던 이중 for문에 대해 “정확히 이해하고 설계했다”는 평가를 받았고, 
그 경험이 이후 더 복잡한 문제 해결에 큰 자산이 될 것이라는 말씀에 스스로에 대한 신뢰가 조금 더 생겼다.

이 피드백을 원동력 삼아, 앞으로는 반복되는 코드를 함수로 추상화하거나 list comprehension, map/filter 같은 고급 문법도 과감하게 시도해보려 한다.

오늘은 그 시작으로, 더 어려운 문제에 도전해보았다.

</aside>

<aside> 🧠

전환율 5% 이상 캠페인만 필터링해서 출력하는 시스템 만들기

퍼포먼스 마케터로서 각 캠페인의 클릭 수와 전환 수를 입력받아, 전환율(Conversion Rate)이 5% 이상인 캠페인만 필터링해서 출력하는 시스템을 만들어야 함.

<aside>

구현 조건

  1. 사용자로부터 반복적으로 캠페인명, 클릭 수, 전환 수를 입력받기 (입력 갯수는 정해져 있지 않음)
  2. 캠페인명은 중복 불가
  3. 클릭 수는 0 이상 10,000 이하, 전환 수는 0 이상 100 이하인 정수
  4. 전환율 계산식:
  5. 전환율이 5% 이상인 캠페인만 이름과 함께 출력 </aside>

<aside>

구현 시 가이드: 중복 체크 함수 예시

def is_duplicate (name, campaign_dict):

for existing_name in campaign_dict:

        `if name == existing_name:`

                                `return True`

return False

</aside>

</aside>

<aside> 💬

구현 조건 천천히 파헤치기

<aside>

반복적으로 캠페인명, 클릭 수, 전환 수 입력받기

while True:
  
    check_y_n = input('계속 입력하시겠습니까?(계속 또는 끝 입력):')
    if check_y_n.strip() == '끝':
        break

<aside>

캠페인명은 중복 불가 + 중복 체크 함수 따로 만들기

campaign_dict
def is_duplicate(name):
    return name in campaign_dict.keys()

<aside>

존재하는 캠페인명이면 메시지 출력 후 다시 입력받기

while True:
    campaign_name = input('캠페인 이름을 입력하세요.: ')
    if is_duplicate(campaign_name):
        print('이미 입력된 캠페인입니다! ❌')
    else:
        break

<aside>

클릭 수: 0이상 10,000이하, 전환 수: 0이상 100이하 정수

while True:
    clicks = int(input('클릭 수를 입력하세요.: '))
    if 0 <= clicks <= 10000:
        break
    else:
        print('잘못된 값입니다. 다시 입력해주세요.')
while True:
    conversions = int(input('전환 수를 입력하세요.: '))
    if 0 <= conversions <= 100:
        break
    else:
        print('잘못된 값입니다. 다시 입력해주세요.')

<aside>

전환율 계산식: (전환 수 / 클릭 수) * 100

<aside>

</aside>

</aside>

<aside> 💬

</aside>

<aside> 💡

</aside>