bootcamp

241230 점프 투 파이썬 (2)

밤하늘바라기s 2024. 12. 30. 16:50

이하 내용은 강의와 위키독스의 e북을 참고하여 정리하였다.

강의 : 파이썬 기초 2024점프투파이썬 - YouTube

e북 : 점프 투 파이썬 - WikiDocs

 

1. 파이썬 기초

5) 자료형

  • 튜플
    • 리스트와 거의 비슷하나, 서랍장을 자물쇠로 잠군다는 느낌. 값 변경 불가.
    • 수정 가능(Mutable) 자료형 : 리스트, 딕셔너리, 집합
    • 수정 불가능(Immutable) : 정수, 실수, 문자열, 튜플
    • 리스트는 [ ], 튜플은 ( )이지만, 괄호 없이도 가능. 튜플 안에 튜플을 넣을 수도 있음.
    • https://jgirl.ddns.net/VisualCode/live.html 이 사이트를 통해 시각적으로도 볼 수 있음.
tupleA = (1, 2, 3)
tupleB = 4, 5, 6
print(type(tupleA)) # 결과값 : <class 'tuple'>
print(type(tupleB)) # 결과값 : <class 'tuple'>
print(tupleA) # 결과값 : (1, 2, 3)
print(tupleB) # 결과값 : (4, 5, 6)
print(tupleA[0]) # 결과값 : 1
print(tupleB[1]) # 결과값 : 5
  • 딕셔너리
    • Hash, Map, Object, JSON이 딕셔너리와 같은 형태.
    • 어떠한 키 값과, 그에 따른 밸류 값이 있음. 마치 사전에서 단어와 그 뜻이 함께 있는 것처럼.
    • 이름표가 붙어있는 사물함이라는 느낌.
    • API에 자주 활용됨.
    • 딕셔너리는 { a : b , c : d } 라는 식으로 구성.
    • 키에는 Immutable, 수정 불가능한 자료형만 입력 가능.
a = {1 : "a", 2 : "b"} # 딕셔너리 생성
print(a) # 결과값 : {1: 'a', 2: 'b'}
print(type(a)) # 결과값 : <class 'dict'>
a["name"] = "민수" # 딕셔너리에 새로운 키와 값을 추가
print(a) # 결과값 : {1: 'a', 2: 'b', 'name': '민수'}
print(a["name"]) # 결과값 : 민수
del a[1] # 딕셔너리의 키와 값을 삭제
print(a.keys()) # 결과값 : dict_keys([2, 'name']) , 딕셔너리의 키값만 출력
print(a.values()) # 결과값 : dict_values(['b', '민수']) , 딕셔너리의 값만 출력
print(a.items()) # 결과값 : dict_items([(2, 'b'), ('name', '민수')]) , 딕셔너리의 키와 값 모두 출력
print(list(a.keys())) # 결과값 : [2, 'name'] , 딕셔너리의 키값을 리스트로 변환
print(a.get(2)) # 결과값 : b , 키값으로 값을 가져옴
print(a.get(10,"없음")) # 결과값 : 없음 , 키값이 없을 때 출력값 설정
print(2 in a) # 결과값 : True , 키값이 딕셔너리에 있는지 확인
print("name" in a) # 결과값 : True , 키값이 딕셔너리에 있는지 확인
print("민수" in a) # 결과값 : False , 값이 딕셔너리에 있는지 확인
print(a.clear()) # 결과값 : None , 딕셔너리의 모든 요소 삭제
print(a) # 결과값 : {} , 딕셔너리가 비어있음
  • 집합
    • set([a,b,...]) 함수를 이용하여 집합 자료형을 만들 수 있음.
    • {a, b, c}라는 식으로 중괄호로 묶어서 만들 수도 있음.
    • 집합에서는 순서가 없고, 중복을 허용하지 않음.
    • 집합에서 값을 선택하거나 인덱싱 하기 위해서는 리스트 혹은 튜플로 자료형을 바꿔줘야 함.
setA = set([1, 2, 3, 4, 5]) # 집합 생성
setB = {4,5,6} # 집합 생성
print(type(setA)) # 결과값 : <class 'set'>
print(setA) # 결과값 : {1, 2, 3, 4, 5}
setToList = list(setA) # 집합을 리스트로 변환
setToTuple = tuple(setA) # 집합을 튜플로 변환
print(setToList) # 결과값 : [1, 2, 3, 4, 5]
print(setToTuple) # 결과값 : (1, 2, 3, 4, 5)
print(setA & setB) # 결과값 : {4, 5} , 교집합
print(setA | setB) # 결과값 : {1, 2, 3, 4, 5, 6} , 합집합
print(setA - setB) # 결과값 : {1, 2, 3} , 차집합
print(setA ^ setB) # 결과값 : {1, 2, 3, 6} , 대칭차집합
print(setA.intersection(setB)) # 결과값 : {4, 5} , 교집합
print(setA.union(setB)) # 결과값 : {1, 2, 3, 4, 5, 6} , 합집합
print(setA.difference(setB)) # 결과값 : {1, 2, 3} , 차집합
print(setA.symmetric_difference(setB)) # 결과값 : {1, 2, 3, 6} , 대칭차집합
setA.add(9) # 집합에 요소 추가
setA.update([10,11]) # 집합에 여러 요소 추가
setA.remove(11) # 집합에 요소 삭제
print(setA) # 결과값 : {1, 2, 3, 4, 5, 9, 10} , 집합 출력
setA.clear() # 집합 비우기
print(setA) # 결과값 : set() , 집합이 비어있음
  • 불(bool)
    • 참(True), 거짓(False) 으로 구분되는 자료형. boolean.
    • bool 자료형의 True False는 제일 앞 문자를 대문자로 작성해야 함.
    • 자료형에서는 값이 있으면 참, 없으면 거짓.
boolA = True
boolB = False
print(type(boolA)) # 결과값 : <class 'bool'>
print(boolA) # 결과값 : True
boolC = 1
boolD = 0
print(bool(boolC)) # 결과값 : True
print(bool(boolD)) # 결과값 : False
print(boolA == boolC) # 결과값 : True
boolE = "True"
print(bool(boolE)) # 결과값 : True
boolF = ""
print(bool(boolF)) # 결과값 : False
boolG = "False"
print(bool(boolG)) # 결과값 : True
boolH = " "
print(bool(boolH)) # 결과값 : True
boolI = None
print(bool(boolI)) # 결과값 : False

if boolA:
    print("True")
else:
    print("False")
# 결과값 : True
  • 변수
    • 변수엔 실제로 값(객체)가 들어가는 것이 아닌, 객체가 존재하는 주소가 들어감.
    • 변수1 = 변수2 라고 할 시, 변수 2의 "주소"가 변수 1에 입력되는 것이지, 객체값이 들어가지 않음.
    • 변수에 값을 넣을 때, " , " 로 이어줄 수도 있고, 같은 값을 대입한다면 = 로 연속적으로 이어줘도 됨.
a = [1,2,3] # 리스트 생성
b = a  # 리스트 복사
print(bool(id(a) == id(b))) # 결과값 : True
a[1] = 4 # 리스트 요소 변경
print(a) # 결과값 : [1, 4, 3]
print(b) # 결과값 : [1, 4, 3]
c = a.copy() # copy()를 이용한 복사
d = a[:] # 슬라이싱을 이용한 복사
print(bool(id(a) == id(c))) # 결과값 : False
print(bool(id(a) == id(d))) # 결과값 : False
e , f = "first", "second" # 변수에 값 대입
print(e) # 결과값 : first
print(f) # 결과값 : second
(g, h) = ("third", "fourth") # 튜플로 변수 대입
[i, j] = ["fifth", "sixth"] # 리스트로 변수 대입
k = l = "seventh" # 변수에 같은 값 대입
print(g,h,i,j,k,l) # 결과값 : third fourth fifth sixth seventh seventh
print(id(k), id(l)) # 결과값 : 서로 같은 주소값
k = "eighth" # 변수에 다른 값 대입
print(k,l) # 결과값 : eighth seventh
print(id(k), id(l)) # 결과값 : 서로 다른 주소값

 

2. 오늘의 정리

이걸로 일단 자료형은 끝난 것 같다. 간단해 보이지만, 헷갈리기 쉬운 부분들이 많을 것 같다. 그리고 메소드(함수)들은 따로 잘 기억해둬야 겠다. 영어 마스터였다면 바로바로 떠오를 것 같지만 그렇진 않으니까.

'bootcamp' 카테고리의 다른 글

241231 점프 투 파이썬 (4)  (1) 2024.12.31
241230 점프 투 파이썬 (3)  (1) 2024.12.30
241229 점프 투 파이썬 (1)  (0) 2024.12.30
241229 SWEA 파이썬 프로그래밍 기초 (1)  (0) 2024.12.29
241226 SWEA 집합과 조합론  (1) 2024.12.27