파이썬의 자료형으로는 정수형, 실수형, 복소수형, 문자열, 리스트, 튜플, 사전 등이 있다.
a = 5. # 소수부가 0일 때 0을 생략 → 5.0
a = -.7 # 정수부가 0일 때 0을 생략 → -0.7
임의의 큰 수 표현. 최댓값이 10억 미만이라면 무한(INF)으로 1e9 사용.
a = 1e9 # 1,000,000,000
a = 57.25e1 # 572.5
a = 3954e-3 # 3.954
a = .3 + .6 # 0.899999999
a = round(a,4) # 0.9
/ : 나눠진 결과 실수형으로 반환 ex) 7 / 3 → 2.3333333333335// : 몫 연산자 ex) 7 // 3 → 2** : 거듭 제곱 연산자 ex) 5 ** 3 → 125java의 array, 연결리스트 그리고 c++의 STL vector와 기능적으로 유사. 배열 혹은 테이블이라고 불리기도,,
# 비여있는 리스트 선언
a = list()
b = []
# 직접 데이터를 넣어 초기화
a = [1,2,3,4,5]
print(a) # [1,2,3,4,5]
# 크기가 N이고, 모든 값이 0인 1차원 리스트 초기화
n = 5
a = [0] * n
print(a) # [0,0,0,0,0]
특정 스트링을 가지고 배열을 만들고 싶다면!
print(list("17")) # ['1', '7']
print(list(17)) # 🚨 error - 'int' object is not iterable
a =[1,2,3,4,5,6,7]
print(a[-1]) # 뒤에서 첫 번쨰 원소 출력 : 7
print(a[0:4]) # 0-3의 원소 : [1,2,3,4]
대괄호 안에 조건문과 반복문 적용해서 리스트 초기화하는 방법. 2차원 리스트 초기화할 떄 굳.
array = [i for i in range(5)] # [0,1,2,3,4]
array = [i for i in range(10) if i % 2 == 1] # [1,3,5,7,9]
array = [i * i for i in range(5)] # [0,1,4,9,16]
n = 3, m = 2 # N X M 크기의 2차원 리스트 초기화
array = [[0] * m for _ in range(n)] #[[0,0],[0,0],[0,0]]
n = 3, m = 2
array = [[0] * m] * n
print(array) #[[0,0],[0,0],[0,0]]
array[1][1] = 5 # 🚨 다 같은 객체로 인식돼서 문제
print(array) #[[0,5],[0,5],[0,5]]_) 사용!for _ in range(5):
print("Hello") # 헬로만 5번 출력len(list)if elmnt in list:list.index(elmnt)sum(list)
a = [1,2,3,4,5,5,5]
remove_set = {3,5} # 집합 자료형
result = [i for i in a if i not in remove_set] # [1,2,4]
전체 문자열 큰따옴표, 내부적으로 작은따옴표 ㄱㄴ
전체 문자열 작은따옴표, 내부적으로 큰따옴표 ㄱㄴ
data = "Don't you know \"Python\"?" # \ 사용하면, 둘 다 원하는 만큼 포함ㄱㄴ
print(data) # Don't you know "Python"?
더하기, 곱하기, 인덱싱, 슬라이싱 가능. but 특정 인덱스 값 변경 불가능.
a = "String"
print(a * 3) # StringStringString
a[2] = 'a' # 🚨 Error
코테를 파이썬으로 본다고 하면, 그 장점으로 문자열 처리가 수월하다는 이야기를 많이 볼 수 있다. 과연 얼마나 좋은지 한 번 기록해 보자.
string.startswith(value, start, end)와 같은 형식. start와 end는 옵션이다. 리턴값은 파라미터에 쓴 값들이 string의 prefix인지 혹은 start와 end 사이에 있는 값인지 확인해준다.string.isapha() : 영어, 한글인지 확인. 공백, 특수문자, 숫자Xstring.isalnum() : 영어, 한글, 숫자인지 확인.string.isalnum() : 숫자인지 확인txt = "Hello, welcome to my world."
x1 = txt.startswith("Hello") # True
x2 = txt.startswith("wel", 7, 20) # True
x3 = txt.startswith("wel", 1, 5) # False
리스트와 유사. 한 번 선언된 값 못 바꿔. 상대적으로 공간(메모리) 효율적
a = (1,2,3,4)
print(a[1:3]) # (2,3)
a[2] = 7 # 🚨 Error
키와 값의 쌍을 데이터로 가지는 자료형. cf) 리스트나 튜플은 순차적으로 저장. 원하는 ‘변경 불가능한 자료형’을 키로 사용 가능. 해시 테이블 이용하므로 O(1) 시간에 연산 처리. 순서 X → 인덱싱으로 값 얻기 X. 사전의 키 이용해 O(1) 시간 복잡도로 조회하는 것.
a = { # 초기화 방법 1
'hong' : 1,
'ik' : 2
}
print(a['ik']) # 2
data = dict() # 초기화 방법 2
data['사과'] = 'apple'
data['바나나'] = 'banana'
data['코코넛'] ='coconut'
print(data) # {'사과':'apple','바나나':'banana','코코넛':coconut'}
if '사과' in data:
print("apple is here!")
# **keys()**함수 - 키 데이터만 뽑아서 리스트
key_list = data.keys()
print(val_list) # dict_keys(['사과','바나나','코코넛'])
for key in key_list:
print(data[key]) # apple \n banana \n coconut
# **values()** - 값 데이터만 뽑아서 리스트
val_list = list(data.values())
print(val_list) # ['apple','banana','coconut']
set() 함수 이용data = set([1,1,2,3,4,4,5]) # {1,2,3,4,5}
da_ta = {1,1,2,2,3,4,4,4,5} # {1,2,3,4,5}
1 in data # 원소 있는지 조회하기 True
1 not in data # False
data.add(6) # 새로운 원소 추가
data.update([7,8]) # 새로운 원소 여러개 추가
data.remove(3) # 특정한 값 갖는 원소 삭제
data.clear() # 공집합으로 만들기
함수이름이 아닌 연산자를 이용한 집합 사이의 연산. |= 를 사용하면 집합끼리 합칠 수 있고 -=를 통해 어떤 집합에 있는 요소들을 제거할 수 있다.
a = {2,3,4}
a |= {1,2,3} # {1,2,3,4}
a -= {3} # {1,2,4}