데이터분석/아티클 스터디

마케터의 파이썬 (2)

경민212 2025. 3. 4. 20:52

메서드(함수) 종류

Marketing = "Market+ing"

# capitalize : 문자열 중 첫 번째 문자만 대문자로 만든다.
Marketing.capitalize()

# upper : 모든 문자열을 대문자로 만든다.
Marketing.upper()

# lower : 모든 문자열을 소문자로 만든다.
Marketing.lower()

# replace : 문자열 중 일부를 치환한다.
Marketing.replace("Market", "Brand")

# split : 특정 값을 기준으로 전체 문자 열을 나누고, 리스트 자료형으로 반환한다.
Marketing.split("+")
# count : 입력된 문자열의 개수를 반환한다.
Marketing.count("a")

# find : 입력된 문자가 처음으로 나타난 위치를 반환한다.
Marketing.find("r")

# join : 입력된 문자를 문자열 사이에 삽입한다.
".".join(Marketing)

# startwith : 문자열이 전달된 문자로 시작하는지 체크하여 불리언으로 반환한다.
Marketing.startswith("Mar")

# endswith : 문자열이 전달된 문자로 끝나는지 체크하여 불리언으로 반환한다.
Marketing.endswith("ing")

# format : 문자열 내 {}가 입력된 위치에 값을 삽입한다.
'CTR은 {}%, CPA는 {}원입니다'.format(2, 2000)

 

# 홀수와 짝수 판별 함수
a = int(input("정수를 입력하세요:\n"))
if a%2 == 0:
    print('짝수')
else : print('홀수')
# 홀수와 짝수 판별 함수
a = int(input("정수를 입력하세요:\n"))

odd = []
even = []

if a%2 == 0:
    even.append(a)
else : odd.append(a)

리스트에 어떤 숫자가 추가됐는지는 리스트를 출력해봐야 알 수 있다.

홀수와 짝수 판수별 함수의 기능은 판별이 목적이기 때문에 결과값이 필요하다.

반면 홀수와 짝수 리스트 추가 함수는 추가 기능만으로 임무를 완수하므로 리스트를 출력할 필요가 없다. 

 

리스트와 딕셔너리 자료구조

종류 선언 방법 형식 인덱싱/슬라이싱 특징
리스트 [ ] sequence 가능 -
딕셔너리 { : } mappaing 불가 key와 value로 이루어져 있다
튜플 ( ) sequence 가능 객체의 수정 및 삭제가 불가능
세트 {  } set 불가 수학의 집합을 구현한 자료 구조
중복을 허용하지 않는다.
순서가 없다.

마케터의 프로그래밍은 리스트와 딕셔너리 만으로도 충분하다.

 

리스트

 

SNS를 운영하는 마케터라면 이벤트 상품을 제공하는 팔로우 이벤트를 진행할 수 있다. 

- 계정 팔로우를 한다면 선물을 증정하는 이벤트

 

* 이벤트 상품을 하나의 목록으로 구성한 예시

기간 1주차 2주차 3주차 4주차
상품 청바지 플리스 스니커즈 재킷

 

event_goods = ['jean', 'fleece', 'sneakers', 'jacket']
# 리스트 인덱싱
event_goods[0]
event_goods[-4]

-> jean

 

자료형 구성에 적합한 자료 구조 선택하기

리스트는 '순서'가 있는 자료 구조, 딕셔너리는 '사전 형태'의 자료 구조임을 다시 한 번 상기하며 자료형을 입력할 때 어떤 자료 구조를 쓰는 것인지 적합한지 판단해야 한다.

# 마케팅 지표 수치를 나열한 리스트 : ctr, cpc, cpm
indicator = [4, 500, 20000]

대응 관계가 존재하는 데이터라면 딕셔너리를 사용하여 대응 관계를 명확히 설정해주는 것이 직관적이고 편리하게 데이터를 관리할 수 있다. 

# 마케팅 지표 수치를 딕셔너리로 구현
indicator_2 = {'ctr' : 4, 'cpc' : 500, 'cpm' : 20000}

 

- 리스트에 맞는 자료형 구성

office = ['책상', 'PC', '캐비넷']
event = ['커피', '책', '컴퓨터']

첫 번째 셀의 리스트는 사무실 기기 목록이다. 두 번째 셀은 1월부터 3월까지의 이벤트 경품 목록이다. 두 번째 셀은 순서가 있는 자료형 구성이기 때문에 리스트를 사용하여 효과적으로 프로그래밍 할 수 있다.

 

출력

print("hello world")
-> hello world

print 함수는 문자열만 출력해 홑따옴표가 없다. 또한 직접 입력된 'hello world'는 해당 라인이 다시 실행되지 않는 한 프로그램 어디에서도 활용할 수 없다. 이미 모니터로 출력돼 데이터가 사라졌기 때문

a - 'hello world'
a
-> 'hello world'

변수 a 에 'hello world'란 문자열을 하당한 후 두 번째 줄을 실행해 a를 확인한 것이다. 결과적으로 문자열이 출력됐지만 두번째 줄은 a가 'hello world'임을 알려주는 용도에 불과하다. 값이 할당된 a는 메모리 어딘가에 저장되어 다시 재활용될 수 있다. 

 

실전예제

 

append( ) : 리스트의 끝에 입력된 자료형을 추가하는 함수

team1.append('Youtube')
-> ['Facebook', 'Google', 'Naver', 'Daum', 'Youtube', 'Youtube']

insert( ) : 설정된 위치에 입력된 자료형을 추가하는 함수

team1.insert(3, 'Instagram')
-> ['Facebook', 'Google', 'Naver', 'Instagram', 'Daum', 'Youtube', 'Youtube']

del : 리스트 내 자료형 중 특정 인덱스를 삭제하는 명령어

del team1[3]
-> ['Facebook', 'Google', 'Naver', 'Daum', 'Youtube', 'Youtube']

remove( ) : 리스트 내 자료형 중 입력된 자료형을 삭제하는 함수 (삭제되는 자료형의 갯수는 한 개에 한함)

team1.remove('Youtube')
-> [???]

 

# 리스트 함수 사용하기
team1 = ['Facebook', 'Google', 'Naver', 'Daum']
team2 = ['Naver', 'Google', 'Nate', 'Zum']

 

sort( ) : 리스트에 저장된 자료형을 순서대로 정렬하는 함수

reverse( ) : 리스트에 저장된 자료형의 현재 순서를 역순으로 정렬하는 함수

extend( ) : 리스트에 새로운 리스트를 더하는 함수

team1.extend(team2)team1
> ['Facebook', 'Google', 'Naver', 'Daum', 'Naver', 'Google', 'Nate', 'Zum']

count( ) : 리스트 내 자료형들의 개수를 반환하는 함수

 

할당 연산자 사용하기

# 할당 연산자 사용하기
offline = ['TV', 'Radio']
Newspaper = ['Newspaper']
offline += Newspaper
offline
-> ['TV', 'Radio', 'Newspaper']

 

딕셔너리 함수

# 딕셔너리 함수 사용하기
customer = {'name' : '김영수', 'age' : 31, 'job' : 'teacher'}

 

keys( ) : 딕셔너리의 키를 반환하는 함수

customer.keys()
-> dict_keys(['name', 'age', 'job'])

values( ) : 딕셔너리의 값을 반환하는 함수

customer.values()
-> dict_values(['김영수', 31, 'teacher'])

items( ) : 딕셔너리의 키와 값을 반환하는 함수

customer.items()
-> dict_items([('name', '김영수'), ('age', 31), ('job', 'teacher')])

get( ) : 키를 사용하여 키에 해당하는 값을 반환하는 함수

customer.get('name')
-> '김영수'

update : 딕셔너리에 새로운 키와 값을 추가하는 함수

customer_data = {'sex' : 'male'}
customer.update(customer_data)
customer
-> {'name': '김영수', 'age': 31, 'job': 'teacher', 'sex': 'male'}