자료형에는 숫자, 문자열, 불, 변수, 리스트, 튜플, 딕셔너리, 집합이 존재합니다.
변수는 값을 담을 수 있는 박스를 의미합니다.
1. 숫자형
- 정수형 : int (-1, 2, -2)
# 정수형
a = 123
print(a) # 123
print(type(a)) # class 'int'
- 실수형 : float (1.24, -34.56)
# 실수형
a = 1.2
print(a) # 1.2
print(type(a)) # class 'float'
- 컴퓨터식 지수 표현 방식 (4.24e10, 4.24e-10)
# 컴퓨터식 지수 표현 방식
a = 4.24E10
print(a) # 42400000000.0
print(type(a)) # class 'float'
- 8진수 (0o37)
- 16진수 (0x7A)
# 8진수와 16진수
a = 0o10
print(a) # 8
print(type(a)) # class 'int'
b= 0xb
print(b) # 11
print(type(b)) # class 'int'
1-1. 사칙연산
사칙연산 : +, -, *, /
- x의 y 제곱을 나타내는 ** 연산자
- 나눗셈 후 나머지를 리턴하는 % 연산자
- 나눗셈 후 몫을 반환하는 // 연산자
# 사칙연산
a = 3
b = 4
print(a + b) # 7
print(a - b) # -1
print(a * b) # 12
print(a / b) # 0.75
print(a ** b) # 81
print(7 % 3) # 1
print(7 // 4) # 1
2. 문자열 자료형
문자열(String) : 문자들의 집합
- 문자열 만드는 방법
- 큰따옴표(" ")로 양쪽 둘러싸기
- 작은따옴표(' ')로 양쪽 둘러싸기
- 큰따옴표 3개를 연속(""")으로 써서 양쪽 둘러싸기
- 작은따옴표 3개를 연속(''')으로 써서 양쪽 둘러싸기
# 큰따옴표로 양쪽 둘라싸기
a = "Hello World"
print(type(a)) # class 'str'
# 작은따옴표로 양쪽 둘러싸기
b = 'Python is fun'
print(type(b)) # class 'str'
# 큰따옴표 3개
c = """I am jioni"""
print(type(c)) # class 'str'
print(c) # I am jioni
# 작은따옴표 3개
d = '''I am busy'''
print(type(d)) # class 'str'
print(d) # I am busy
문자열 안에 작은따옴표나 큰따옴표를 포함하고 싶을 때
- 문자열에 작은따옴표(' ') 포함시키기
- 문자열에 큰따옴표(" ") 포함시키기
- 백슬래시(\)를 사용해서 작은따옴표(' ')와 큰따옴표(" ")를 문자열에 포함시키기
# 문자열에 작은따옴표(') 포함시키기
a = "Jihyun's favorite color is black."
print(a) # Jihyun's favorite color is black.
# 문자열에 큰따옴표(") 포함시키기
a = 'Life " is too short.'
print(a) # Life " is too short.
여러 줄인 문자열을 변수에 대입하고 싶을 때
- 줄을 바꾸기 위한 이스케이프 코드 \n 삽입하기
- 연속된 작은따옴표 3개(''') 또는 큰따옴표 3개(""") 사용하기
- 이스케이프 코드
- \n : 문자열 안에서 줄을 바꿀 때 사용
- \t : 문자열 사이에 탭 간격을 줄 때 사용
- \\ : 문자 \를 그대로 표현할 때 사용
- \' : 작은따옴표(')를 그대로 표현할 때 사용
- \" : 큰따옴표(")를 그대로 표현할 때 사용
# 백슬래시 사용
a = "Life \" is too short"
print(a)
b = 'I\'m hungry.'
print(b)
# 작은따옴표 3개 또는 큰따옴표 3개 사용하기
a = '''Life is too short
You need python'''
print(a)
b = """Life is too short
You need python"""
print(b)
2-1. 문자열 연산하기
1. 문자열 더해서 연결하기 (Concantenation)
# 문자열 더해서 연결하기
a = "Python"
b = " is fun."
print(a + b) # Python is fun.
2. 문자열 곱하기
- 단, 문자열과 숫자만 곱하는 것이 가능
- 문자열 * 문자열은 불가능
# 문자열 곱하기
a = "Python "
b = " is fun."
print(a + b) # Python is fun.
3. 문자열 길이 구하기 (len)
- len은 length의 약자
# 문자열 길이 구하기
a = "Life is too short."
print(len(a)) # 18
2-2. 문자열 인덱싱과 슬라이싱
인덱싱(indexing)은 가리키다라는 의미이고 슬라이싱(Slicing)은 잘라낸다는 의미입니다.
1. 문자열 인덱싱
인덱싱은 문자열 안의 특정한 값을 뽑아내는 역할을 합니다.
- 파이썬은 0부터 숫자를 셉니다.
- a[번호]는 a 문자열 안의 특정 번호의 값을 뽑아낸다는 의미입니다.
- 뒤에서부터 읽기 위해서는 마이너스(-) 기호를 붙입니다.
- 단, 0과 -0은 동일한 값입니다.
# 문자열 인덱싱
a = "jihyun is busy."
print(a[3]) # y
print(a[0]) # j
print(a[-2]) # y
2. 문자열 슬라이싱
슬라이싱은 덩어리로 자르겠다는 의미입니다.
- a[: :] => a[이상:미만:간격]
3. 문자열을 슬라이싱하는 방법
- a[시작 번호:끝 번호] 지정할 때, 끝 번호에 해당하는 것은 포함하지 않습니다.
- 슬라이싱할 때 항상 시작 번호가 0일 필요는 없습니다.
- a[시작 번호:] => 시작 번호 ~ 끝까지
- a[:끝 번호] => 처음부터 ~ 끝 번호까지
- a[:] => 처음부터 ~ 끝까지
- 마이너스(-) 기호 사용 가능
Python은 immutable한 자료형이기 때문에 슬라이싱을 사용하여 잘못 문자열을 바꿀 수 있습니다.
# 문자열 슬라이싱
a = "jihyun is busy."
b = a[0:4]
print(b) # jihy
# 슬라이싱_끝 번호 생략
c = a[5:]
print(c) # n is busy.
# 슬라이싱_간격
d = a[::2]
print(d) # jhu sbs.
# 슬라이싱으로 문자열 나누기
a = "20241219Sunny"
date = a[:8]
weather = a[8:]
print(date) # 20241219
print(weather) # Sunny
2-3. 문자열 포매팅
문자열 포매팅(Formatting)은 문자열 안에 어떤 값을 삽입하는 방법을 의미합니다.
1. 숫자 바로 대입
# 숫자 바로 대입
a = "I eat %d apples." % 3
print(a) # I eat 3 apples.
2. 문자열 바로 대입
# 문자열 바로 대입
a = "I eat %s apples." % "five"
print(a) # I eat five apples.
3. 숫자 값을 나타내는 변수로 대입
# 숫자 값을 나타내는 변수로 대입
number = 3
a = "I eat %d apples." % number
print(a) # I eat 3 apples.
4. 2개 이상의 값 넣기
# 2개 이상의 값 넣기
number = 10
day = "three"
a = "I ate %d apples. So I was sick for %s days." % (number, day)
print(a) # I ate 10 apples. So I was sick for three days.
2-3-1. 문자열 포맷 코드
- %s : 문자열 (string)
- %c : 문자 1개 (character)
- %d : 정수 (integer)
- %f : 부동소수 (floating-point)
- %o : 8진수
- %x : 16진수
- %% : Literal % (문자 % 자체)
- %s : 어떤 형태의 값이든 변환해서 넣을 수 있습니다.
- %d와 %를 같이 쓸 때는 %%를 사용합니다.
# %d%%를 어떻게 사용할까
a = "Error is %d%%." % 98
print(a) # Error is 98%.
2-3-2. 포맷 코드와 숫자 함께 사용하기
1. 정렬과 공백
a = "%10s" % "hi"
print(a)
- 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 남겨두라는 의미입니다.
- 왼쪽 정렬 : %-10s
# 정렬과 공백
a = "%10s" % "hi"
print(a) # hi
b = "%-10s" % "hi"
print(b) # hi
2. 소수점 표현하기
# 소수점 표현하기
a = "%0.4f" % 3.42134234
print(a) # 3.4213
2-3-3. format 함수를 사용한 포매팅
1. 숫자 바로 대입하기
# 숫자 바로 대입하기
a = "I eat {0} apples.".format(3)
print(a) # I eat 3 apples.
2. 문자열 바로 대입하기
# 문자열 바로 대입하기
a = "I eat {0} apples.".format("five")
print(a) # I eat five apples.
3. 숫자 값을 가진 변수를 대입하기
# 숫자 값을 가진 변수를 대입하기
number = 3
a = "I ate {0} apples.".format(number)
print(a)
4. 2개 이상의 값 넣기
# 2개 이상의 값 넣기
number = 10
day = "three"
a = "I ate {0} apples. So I was sick for {1} days.".format(number, day)
print(a) # I ate 10 apples. So I was sick for three days.
5. 이름으로 넣기
# 이름으로 넣기
a = "I ate {number} apples. So I was sick for {day} days.".format(number=10, day=3)
print(a) # I ate 10 apples. So I was sick for 3 days.
6. 인덱스와 이름을 혼용해서 넣기
# 인덱스와 이름을 혼용해서 넣기
a = "I ate {0} apples. So I was sick for {day} days.".format(10, day=3)
print(a) # I ate 10 apples. So I was sick for 3 days.
7. 왼쪽 정렬
8. 오른쪽 정렬
9. 가운데 정렬
# 왼쪽 정렬, 오른쪽 정렬, 가운데 정렬
a = "{0:<10}".format("hi")
print(a) # hi
b = "{0:>10}".format("hi")
print(b) # hi
c = "{0:^10}".format("hi")
print(c) # hi
10. 공백 채우기
# 공백 채우기
a = "{0:=^10}".format("hi")
print(a) # ====hi====
11. 소수점 표현하기
# 소수점 표현하기
y = 3.42134234
a = "{0:0.4f}".format(y)
print(a) # 3.4213
12. { 또는 } 문자 표현하기
# { 또는 } 문자 표현하기
a = "{{ and }}".format()
print(a) # { and }
2-3-4. f 문자열 포매팅
이것을 가장 많이 사용
# f 문자열 포매팅
name = "강지현"
age = 25
a = f"나의 이름은 {name}입니다. 나이는 {age}입니다."
b = f"나는 내년이면 {age+1}살 입니다.
print(a) # 나의 이름은 강지현입니다. 나이는 25입니다.
print(b) # 나는 내년이면 26살 입니다.
2-4. 문자열 관련 함수
문자열 관련 함수를 문자열 내장 함수라고도 부릅니다.
이는 문자열 변수 이름 뒤에 . 를 붙인 다음에 함수 이름을 써주면 됩니다. 이들을 method라고 부릅니다.
1. 문자 개수 세기 (count)
# count
a = "hobby"
print(a.count("b")) # 2
2. 위치 알려주기 1 (find)
- 몇 번째에 위치하는가를 표현
- 없는 값을 찾아달라고 하면 -1 이 반환
# find
a = "hobby"
print(a.find("b")) # 2
3. 위치 알려주기 2 (index)
- 없는 값을 찾아달라고 하면 오류가 뜸
# index
a = "hobby"
print(a.index("b")) # 2
4. 문자열 삽입 (join)
- 각각의 문자 사이에 .join 앞의 문자를 삽입
# join
a = ",".join("abcd")
print(a) # a,b,c,d
5. 소문자를 대문자로 바꾸기 (upper)
# upper
a = "hi"
print(a.upper()) # HI
6. 대문자를 소문자로 바꾸기 (lower)
# lower
a = "HI"
print(a.lower()) # hi
7. 왼쪽 공백 지우기 (lstrip)
8. 오른쪽 공백 지우기 (rstrip)
9. 양쪽 공백 지우기 (strip)
# lstrip, rstrip, strip
a = " hi "
print(a.lstrip()) # hi
print(a.rstrip()) # hi
print(a.strip()) # hi
10. 문자열 바꾸기 (replace)
# replace
a = "Life is too short"
print(a.replace("Life", "Your leg")) # Your leg is too short
11. 문자열 나누기 (split)
- 리스트 형식으로 나뉨
# split
a = "Life is too short"
print(a.split()) # ['Life', 'is', 'too', 'short']
3. 리스트 자료형
- 리스트 = 서랍장
- 리스트명 = [요소1, 요소2, 요소3]
파이썬은 한 리스트에 여러 자료형을 넣을 수 있고 리스트 안에 리스트를 넣을 수도 있습니다.
# 리스트는 어떻게 만들고 사용할까?
odd = [1, 3, 5, 7, 9]
print(odd) # [1, 3, 5, 7, 9]
print(type(odd)) # class 'list'
3-1. 리스트의 인덱싱과 슬라이싱
1. 리스트의 인덱싱
- 리스트 내에 리스트가 존재할 수 있습니다.
# 리스트의 인덱싱
a = [1, 2, 3]
print(a[0]) # 1
print(a[1]+a[2]) # 5
print(a[-1]) # 3
# 리스트 안에 리스트
a = [1, 2, 3, ['a', 'b', 'c']]
print(a[3]) # ['a', 'b', 'c']
print(a[3][1]) # b
2. 리스트의 슬라이싱
# 리스트의 슬라이싱
a = [1, 2, 3, 4, 5]
print(a[0:2]) # [1, 2]
# 중첩된 리스트에서 슬라이싱
a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
print(a[2:5]) # [3, ['a', 'b', 'c'], 4]
3-2. 리스트 연산하기
1. 리스트 더하기 (+)
# 리스트 더하기
a = [1, 2, 3]
b = [4, 5, 6]
print(a + b) # [1, 2, 3, 4, 5, 6]
2. 리스트 반복하기 (*)
# 리스트 반복하기
a = [1, 2, 3]
b = 3
print(a * b) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
3. 리스트 길이 구하기 (len)
# 리스트 길이 구하기
a = [1, 2, 3]
print(len(a)) # 3
3-3. 리스트의 수정과 삭제
1. 리스트에서 값 수정하기
# 리스트에서 값 수정하기
a = [1, 2, 3]
a[2] = 4
print(a) # [1, 2, 4]
2. del 함수 사용해 리스트 요소 삭제하기
- del 객체
# del 함수 사용해 리스트 요소 삭제하기
a = [1, 2, 3]
del a[-1]
print(a) # [1, 2]
- 슬라이싱 기법 사용하여 한 번에 삭제도 가능
# del 함수와 슬라이싱 기법 사용해 리스트 요소 삭제하기
a = [1, 2, 3, 4, 5]
del a[2:]
print(a) # [1, 2]
3-4. 리스트 관련 함수
1. 리스트에 요소 추가 (append)
# append
a = [1, 2, 3]
a.append(4)
print(a) # [1, 2, 3, 4]
a.append([5, 6])
print(a) # [1, 2, 3, 4, 5, 6]
2. 리스트 정렬 (sort)
# sort
a = [1, 4, 3, 2]
a.sort()
print(a) # [1, 2, 3, 4]
b = ['a', 'g', 'c']
b.sort()
print(b) # ['a', 'c', 'g']
3. 리스트 뒤집기 (reverse)
# reverse
a = ['a', 'c', 'b']
a.reverse()
print(a) # ['b', 'c', 'a']
4. 위치 변환 (index)
# index
a = [1, 2, 3]
print(a.index(3)) # 2
5. 리스트에 요소 삽입 (insert)
- a.insert(0, 4) => 0번째 index에 4를 추가
# insert
a = [1, 2, 3]
a.insert(0, 4)
print(a) # [4, 1, 2, 3]
6. 리스트 요소 제거 (remove)
- remove(X)는 리스트에서 첫 번째로 나오는 X를 삭제하는 함수
- 여러 개 제거하기 위해서는 remove를 여러 번 작성
# remove
a = [1, 2, 3, 4, 1, 2]
a.remove(2)
print(a) # [1, 3, 4, 1, 2]
7. 리스트 요소 끄집어내기 (pop)
- 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제
# pop
a = [1, 2, 3]
a.pop()
print(a) # [1, 2]
8. 리스트에 포함된 요소 X의 개수 세기 (count)
- count(X)는 리스트 안에 X가 몇 개 있는지 조사하여 그 개수를 돌려주는 함수
# count
a = [1, 2, 3, 1]
print(a.count(1)) # 2
9. 리스트 확장 (extend)
- extend(X)는 X에는 리스트만 올 수 있으며 원래의 a 리스트에 X 리스트를 더하게 됩니다.
# extend
a = [1, 2, 3, 1]
a.extend([4, 5])
print(a) # [1, 2, 3, 1, 4, 5]
4. 튜플 자료형
- 리스트와 튜플은 거의 비슷합니다. 단, 리스트는 서랍장이면 튜플은 그 서랍장에 자물쇠를 잠궈놓았다고 생각하면 됩니다.
# 튜플 만드는 방법
a = [1, 2, 3] # 리스트
# 튜플
t1 = ()
print(type(t1)) # class 'tuple'
t2 = (1, )
print(t2[0]) # 1
t3 = (1, 2, 3)
print(type(t3)) # class 'tuple'
t4 = 1, 2, 3
print(type(t4)) # class 'tuple'
t5 = ('a', 'b', ('ab', 'cd'))
print(type(t5)) # class 'tuple'
4-1. 리스트와 튜플의 차이점
- 리스트는 [ ] 으로 둘러싸지만 튜플은 ( ) 으로 둘러쌉니다.
- 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없습니다.
- ( ) 가 없어도 튜플입니다.
- 튜플의 요소 값을 지우거나 변경하려고 하면 오류 메시지가 뜹니다.
- Mutable (변경 가능) : 리스트, 딕셔너리, 집합
- Immutable (변경 불가능) : 정수, 실수, 문자열, 튜플
4-2. 튜플 다루기
1. 인덱싱하기
# 인덱싱하기
t1 = (1, 2, 'a', 'b')
print(t1[1]) # 2
2. 슬라이싱하기
- 잠깐 잘라서 보여주는 것이지 변경되지는 않음
# 슬라이싱하기
t1 = (1, 2, 'a', 'b')
print(t1[1:]) # (2, 'a', 'b')
3. 튜플 더하기
- 새로운 튜플 만드는 것
# 튜플 더하기
t1 = (1, 2, 'a', 'b')
t2 = (3, 4)
t3 = t1 + t2
print(t3) # (1, 2, 'a', 'b', 3, 4)
4. 튜플 곱하기
# 튜플 곱하기
t2 = (3, 4)
t3 = t2 * 3
print(t3) # (3, 4, 3, 4, 3, 4)
5. 튜플 길이 구하기
# 튜플 길이 구하기
t1 = (1, 2, 'a', 'b')
print(len(t1)) # 4
immutable이기 때문에 sort, insert, remove, pop 같은 내장함수 사용 불가능
5. 딕셔너리 자료형
타 언어의 딕셔너리와 같은 개념
=> Hash, Map, Object, JSON
딕셔너리는 API에 자주 활용됩니다.
- Key, Value를 한 쌍으로 가지는 자료형
5-1. 기본 딕셔너리의 모습
{Key1:Value1, Key2:Value2, Key3:Value3, ...}
- 중괄호를 사용합니다.
# 딕셔너리는 어떻게 만들까?
dic = {'name':'pey', 'phone':'010-1234-5678', 'birth':'1222'}
print(dic) # {'name':'pey', 'phone':'010-1234-5678', 'birth':'1222'}
print(type(dic)) # class 'dict'
# 딕셔너리의 정보
a = {1:'hi'}
print(a) # {1:'hi'}
b = {'a' : [1, 2, 3]}
print(b) # {'a' : [1, 2, 3]}
5-2. 딕셔너리 쌍 추가, 삭제하기
1. 딕셔너리 쌍 추가하기
- key와 value가 함께 추가
# 딕셔너리 쌍 추가하기
a = {1:'a'}
a[2] = 'b'
a[3] = [1, 2, 3]
print(a) # {1:'a', 2:'b', 3:[1, 2, 3]}
2. 딕셔너리 쌍 삭제하기
- del 사용
# 딕셔너리 요소 삭제하기
a = {1:'a', 2:'b', 'name':'jihyun', 3: [4, 5, 6]}
del a[1], a[3]
print(a) # {2:'b', 'name':'jihyun'}
5-3. 딕셔너리 사용하는 방법
1. 딕셔너리에서 key를 사용해 value 얻기
- 딕셔너리변수이름[Key]
# 딕셔너리에서 key 사용해 value 얻기
grade = {'jihyun':100, 'juho':30}
print(grade['jihyun']) # 100
# 딕셔너리에서 key 사용해 value 얻기_2
dic = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
print(dic['name']) # jihyun
5-4. 딕셔너리 만들 때 주의할 사항
- 반드시 key는 유일해야 합니다.
- key가 변형되면 안됩니다.
- 리스트는 mutable이기 때문에 key로써 사용하기 적합하지 않습니다.
5-5. 딕셔너리 관련 함수들
1. Key 리스트 만들기 (keys)
- dict_keys 객체를 리턴합니다.
# keys
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
print(a.keys()) # dict_keys(['name', 'phone', 'birth'])
# keys_2
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
for k in a.keys():
print(k) # name
# phone
# birth
2. Value 리스트 만들기 (values)
- dict_values 객체를 리턴합니다.
# values
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
print(a.values()) # dict_values(['jihyun', '010-1234-5678', '1222'])
3. Key, Value 쌍 얻기 (items)
- dict_items 객체를 리턴합니다.
# items
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
print(a.items()) # dict_items([('name', 'jihyun'), ('phone', '010-1234-5678'), ('birth', '1222')])
4. Key:Value 쌍 모두 지우기 (clear)
# clear
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
a.clear()
print(a) # {}
5. Key로 Value 얻기 (get)
- 없는 값 출력할 경우 None이라는 값이 나옵니다.
# get
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
print(a.get('name')) # jihyun
6. 해당 Key가 딕셔너리 안에 있는지 조사하기 (in)
# in
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
print('name' in a) # True
print('email' in a) # False
6. 집합 자료형
집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형입니다.
- set 사용
- 비어있는 집합 자료형은 s = set()으로 만들 수 있습니다.
# 집합 자료형은 어떻게 만들까?
s1 = set([1, 2, 3])
print(s1) # {1, 2, 3}
print(type(s1)) # class 'set'
s2 = {1, 2, 3}
print(s2) # {1, 2, 3}
print(type(s2)) # class 'set'
s3 = set("Hello")
print(s3) # {'l', 'e', 'o', 'H'}
print(type(s3)) # class 'set'
# set 자료형에 저장된 값을 인덱싱으로 접근하려면
s1 = set([1, 2, 3])
l1 = list(s1)
print(l1[0]) # 1
6-1. 집합 자료형의 특징
- 중복을 허용하지 않습니다.
- 순서가 없습니다. (Unordered)
- 즉, 인덱스로 접근할 수 없습니다.
6-2. 교집합, 합집합, 차집합 구하기
1. 교집합
- & 기호 사용 또는 intersection 함수
# 교집합
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1 & s2) # {4, 5, 6}
print(s1.intersection(s2)) # {4, 5, 6}
2. 합집합
- | 기호 사용 또는 union 함수
# 합집합
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1 | s2) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(s1.union(s2)) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
3. 차집합
- - 기호 사용 또는 difference 함수
# 차집합
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1 - s2) # {1, 2, 3}
print(s2.difference(s1)) # {8, 9, 7}
6-3. 집합 자료형 관련 함수들
1. 값 1개 추가하기 (add)
# add
s1 = set([1, 2, 3])
s1.add(4)
print(s1) # {1, 2, 3, 4}
2. 값 여러 개 추가하기 (update)
- 만일 중복된 값을 추가하고자 할 때 1개만 추가됩니다.
# update
s1 = set([1, 2, 3])
s1.update([4, 4, 5, 6])
print(s1) # {1, 2, 3, 4, 5, 6}
3. 특정 값 제거하기 (remove)
# remove
s1 = set([1, 2, 3])
s1.remove(2)
print(s1) # {1, 3}
7. 불 자료형
- 참, 거짓을 나타내는 자료입니다.
- True나 False는 파이썬의 예약어로, 항상 첫 문자를 대문자로 사용해야 합니다.
# 불 자료형
a = True
print(a) # True
print(type(a)) # class 'bool'
7-1. 자료형의 참과 거짓
- 문자열, 리스트, 튜플, 딕셔너리 등의 값이 있으면 참, 비어있으면 거짓
# 자료형의 참과 거짓_while문
a = [1, 2, 3, 4]
while a:
print(a) # [1, 2, 3, 4]
a.pop() # [1, 2, 3]
# [1, 2]
# [1]
# 자료형의 참과 거짓_if문
if []:
print("참")
else:
print("거짓") # 거짓
7-2. 불 연산
- bool 연산을 통해 참, 거짓을 판별할 수 있습니다.
# 불 연산
a = bool([1, 2, 3])
print(a) # True
b = bool([])
print(b) # False
8. 변수
변수는 자료형의 값을 저장하는 공간으로서 주소값을 담습니다.
8-1. 변수란?
변수 이름 = 변수에 저장할 값
- a = [1, 2, 3] 이라고 하면 [1, 2, 3] 값을 가지는 리스트 데이터가 자동으로 메모리에 생성되고 변수 a는 [1, 2, 3] 리스트가 저장된 메모리의 주소를 가리키게 됩니다.
- id 함수 : 변수가 가리키고 있는 객체의 주소 값을 리턴하는 파이썬의 내장 함수
# 변수란?
a = [1, 2, 3]
print(id(a)) # 변수의 주소값
8-2. 리스트를 복사하고자 할 때
- 주소값을 복사하여 담아주는 것이여서 복사한 것과 복사된 것의 변수의 주소값은 동일합니다.
- a is b 를 통해 객체가 동일한지 확인이 가능합니다.
# 리스트를 복사하고자 할 때
a = [1, 2, 3]
b = a
print(b) # [1, 2, 3]
print(id(a)) # a의 주소값
print(id(b)) # b의 주소값 == a의 주소값
print(a is b) # True
# 리스트 복사_2
a = [1, 2, 3]
b = a # 오른쪽의 주소값을 왼쪽에 넣음
a[1] = 4
print(a) # [1, 4, 3]
print(b) # [1, 4, 3]
1. [:] 이용
- 리스트 전체를 가리키는 [:] 을 사용해서 복사하는 것
- 즉, 다른 공간이라고 생각
# [:] 이용
a = [1, 2, 3]
b = a[:]
a[1] = 4
print(a) # [1, 4, 3]
print(b) # [1, 2, 3]
2. copy 모듈 이용
- from copy import copy
- b = copy(a) == b = a[:]
# copy 모듈 이용하기
from copy import copy
a = [1, 2, 3]
b = copy(a)
print(b is a) # False
3. copy 함수 이용
# copy 함수 사용하기
a = [1, 2, 3]
b = a.copy()
print(b is a) # False
'Study > Python' 카테고리의 다른 글
[Jump-to-Python] 파이썬의 입출력 (0) | 2025.01.01 |
---|---|
[Jump-to-Python] 제어문 (1) | 2024.12.23 |