마케터의 파이썬 (2)
메서드(함수) 종류
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'}