퍼포먼스 마케터 부트캠프 4주 1일차 (참여 13일차)

MIN BAEK·2025년 6월 2일
0

1. 오늘 학습 키워드

파이썬 개념 복습

2. 학습한 내용 & 겪었던 문제점 & 인사이트

컴파일러(compiler) 언어와 인터프리터(interpreter) 언어

컴파일러(compiler)

  • 전체 파일을 스캔하여 한꺼번에 번역
  • 초기 스캔시간은 오래 걸리나, 한번 실행 파일이 만들어지고 나면 빠름
  • 기계어 번역과정에서 더 많은 메모리를 사용
  • 전체 코드를 스캔하는 과정에서 모든 오류를 한꺼번에 출력해주기 때문에 실행 전에 오류를 알 수 있음
  • 대표적인 언어 : C, C++, JAVA

인터프리터(interpreter)

  • 프로그램 실행시 한 번에 한 문장씩 번역
  • 한번에 한문장씩 번역후 실행 시키기 때문에 실행 시간이 느림
  • 오브젝트 코드 생성과정이 없기 때문에 메모리 효율 좋음
  • 프로그램을 실행시키고 나서 오류를 발견하면 바로 실행을 중지 시키기 때문에 실행 후에 오류를 알 수 있음
  • 대표적인 언어: Python, Ruby, Javascript

mutable vs immutable

리스트, 딕셔너리, 집합 vs 정수, 실수, 문자열, 튜플

가변 (Mutable) 객체
'수정 가능한' 이라는 뜻
즉, 객체를 생성한 후에 그 객체 자체의 내용(내부 상태)을 변경할 수 있는 객체

  • 리스트 (List): append(), pop(), my_list[0] = value 등으로 내용 변경 가능
  • 딕셔너리 (Dictionary): my_dict['key'] = value, update() 등으로 내용 변경 가능
  • 집합 (Set): add(), remove() 등으로 내용 변경 가능

불변 (Immutable) 객체
'수정 불가능한' 이라는 뜻
객체를 생성한 후에는 그 객체의 내용을 변경할 수 없고 내용을 바꾸려면 새로운 객체를 다시 만들어야 함

  • 튜플 (Tuple): my_tuple[0] = value (X) -> 오류 발생
  • 문자열 (String): my_string.replace()는 새 문자열을 반환하지, 원본을 변경하지 않음
  • 정수 (Integer), 실수 (Float), 불리언 (Boolean): 숫자나 True/False 값을 변경할 수 없음

🤔반복 가능한 (Iterable) 객체랑은 다른 개념
iterable은 '반복할 수 있는' 이라는 뜻
즉, for 루프를 사용해서 그 안에 있는 요소들을 하나씩 순회(iterate) 하면서 꺼낼 수 있는 객체
리스트, 튜플, 문자열, 세트, 딕셔너리, range객체 모두 이에 해당

집합(SET)

  • 순서가 없는(unordered) 중복을 허용하지 않는(unique) 요소들의 모음
  • {} 중괄호 안에 key:value 없이 하나의 값만 있으면 집합
  • set() 함수는 인자로 리스트를 포함한 모든 '반복 가능한(iterable)' 객체를 받을 수 있음

    S1=set("hello")
    print(S1)
    #출력 {'o','e','l','h'} (중복 제거 됨, 순서 X)

del vs remove,pop

del
키워드/문(Statement)
del 객체[인덱스] 형식으로 사용하며, 변수 자체를 삭제할 때도 사용

remove() / pop()
메서드(Method)
리스트.메서드() 형식으로 호출하며, 리스트 객체에 속한 특정 기능을 수행

리스트 vs 문자열

리스트(append, pop, sort 등)
내용을 그 자리에서 직접 수정하는 메서드를 가짐
그래서 변수에 다시 대입할 필요 ❌❌❌❌❌❌ ‼️‼️
문자열(replace, lower, upper 등)
내용을 직접 수정할 수 없으므로, 변경된 내용을 담은 새로운 문자열을 반환
따라서 변경된 결과를 사용하려면 변수에 다시 대입(재할당) 필요 ⭕️⭕️⭕️⭕️⭕️⭕️‼️‼️

특이한 JOIN 메서드

일반적인 메서드
주로 대상 객체(변수)가 자신을 변경하거나, 자신을 기반으로 한 다른 결과를 만들 때 사용
형태 : (변수명.메서드()) ex) list.append()
join() 메서드
구분자 문자열이 주체가 되어, 다른 자료구조(리스트, 튜플 등)에 있는 여러 문자열 요소들을 한 줄로 연결할 때 사용
형태 : (구분자.join(자료형)) ex) '_'.join(list)🧐🧐🧐

sort vs sorted

list.sort()
리스트의 매서드. 원본 리스트를 직접 수정하고, 아무것도 반환하지 않음 (None).
sorted()
파이썬의 내장함수. 원본은 그대로 두고, 정렬된 새로운 리스트를 만들어서 반환함.

data = [2, 4, 3, 1, 5, 10, 9]
data.sort()

차이: 변수 할당
data = [2, 4, 3, 1, 5, 10, 9]
data2 = sorted(data)
print(data2)

튜플 언패킹

객체 안에 있는 값들을 꺼내서 각각의 새로운 변수에 대입하는 행위
temp = ('apple', 'banana', 'cake')
a, b, c = temp
print(a, b, c)

[] = 형식

1) 리스트 요소 수정 (값 변경)
리스트의 특정 인덱스에 있는 값을 다른 값으로 바꿈

my_list = ['사과', '바나나']
my_list[0] = '오렌지' # '사과'를 '오렌지'로 수정
print(my_list) # ['오렌지', '바나나']

2) 딕셔너리 요소 수정 (값 변경 또는 새 키-값 추가)
설명: 딕셔너리의 특정 키에 해당하는 값을 바꾸거나, 없는 키일 경우 새 키와 값을 추가

my_dict = {'name': 'Alice'}
my_dict['name'] = 'Bob' # 기존 키 'name'의 값 변경
my_dict['age'] = 30 # 새 키 'age'와 값 추가
print(my_dict) # {'name': 'Bob', 'age': 30}

딕셔너리에 값을 추가하는 4가지 방법(Update 활용)

ice_cream={'메로나':1000, '폴라포':1200, '빵빠레':1800}
ice_cream["죠스바"]=1200 # 1) 변수[키]=값
ice_cream.update({'월드콘':1500}) # 2) 딕셔너리 형태
ice_cream.update(스크류바=1000) # 3) 키워드 인자
ice_cream.update([('돼지바', 1300)]) # 4) 리스트 안에 튜플
print(ice_cream)

딕셔너리에 새 항목을 추가할 때는 보통 [] = 형식을 가장 많이 사용하며, 여러 개를 한 번에 추가하거나 다른 딕셔너리의 내용을 합칠 때 update() 사용

아직도 헷갈리는 개념이 이렇게나 많다니요 ㅠㅠㅠㅠㅠㅠ...슬 프 다

3. 내일 학습 할 일 정리

♾️무한 복습♾️

profile
안녕하세요 백민입니다:)

1개의 댓글

comment-user-thumbnail
2025년 6월 2일

오늘도 수고하셨습니다! 수요일에도 파이팅 해봐요!!

답글 달기