코테/파이썬
코테를 위한 파이썬 문법 - 1. 자료형
mildroast
2021. 8. 12. 22:16
아무래도 파이썬은 처음이다 보니 파이썬에 대한 정리는 필요한거같다.
혼자 공부하면서 블로그에 정리하는거지만 누군가에게도 도움이 됬으면 좋겠다.
수 자료형
정수형 (Integer)
1
2
3
4
5
6
7
8
|
a = 1000
print(a) # 1000
a = -7
print(a) # -7
a = 0
print(a) # 0
|
cs |
실수형 (Real Number)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
a = 157.93
print(a) # 157.93
a = -157.93
print(a) # -157.93
# 소수부가 0일 때 생략 가능
a = 5.
print(a) # 5.0
# 정수부가 0일 때 생략 가능
a = -.5
print(a) # -0.5
# 지수형식 표현 가능
a = 1e9
print(a) # 1000000000.0
a = 75.25e1
print(a) # 752.5
a = 1234e-3
print(a) # 1.234
a = 0.3 + 0.6
print(a)
# 컴퓨터가 실수를 정확하게 표현하지 못함
if a == 0.9:
print(True)
else:
print(False) # False
# round를 통한 소수점 반올림
a = round(123.456, 2)
print(a) # 123.46
# math를 이용한 올림, 내림, 버림
import math
a = math.ceil(123.456) # 올림
print(a) # 124
a = math.floor(123.456) # 내림
print(a) # 123
a = math.trunc(123.456) # 버림
print(a) # 123
|
cs |
수 자료형의 연산
1
2
3
4
5
6
7
8
9
10
11
|
a = 7
b = 3
# 나누기
print(a / b) # 2.3333333333333335
# 나머지
print(a % b) # 1
# 몫
print(a // b) # 2
|
cs |
리스트 자료형
리스트 만들기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 인덱스 4번, 다섯 번째 원소에 접근
print(a[4]) # 5
# 빈 리스트 선언 방법 1
a = list()
print(a) # []
# 빈 리스트 선언 방법 2
a = []
print(a) # []
# 크기가 N이고, 모든 값이 0인 1차원 리스트 초기화
n = 10
a = [0] * n
print(a) # [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
cs |
리스트의 인덱싱과 슬라이싱
1
2
3
4
5
6
7
8
9
10
11
12
13
|
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 뒤에서 첫 번째 원소 출력
print(a[-1]) # 9
# 뒤에서 세 번째 원서 출력
print(a[-3]) # 7
# 네 번째 원소 값 변경
a[3] = 7
print(a) # [1, 2, 3, 7, 5, 6, 7, 8, 9]
# 두 번째 원소 부터 네 번째 원소까지
print(a[1 : 4]) # [2, 3, 7]
|
cs |
리스트 컴프리헨션
특정 크기의 2차원 리스트를 초기화할 때는 반드시 리스트 컴프리헨션을 이용하자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# 0부터 19까지의 수 중에서 홀수만 포함하는 리스트
array = [i for i in range(20) if i % 2 == 1]
print(array) # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
# 위에와 같은 리스트 선언 방식
array = []
for i in range(20):
if i % 2 == 1:
array.append(i)
print(array) # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
# n * m 크기의 2차원 리스트 초기화
n = 3
m = 4
array = [[0] * m for _ in range(n)]
print(array) # [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
|
cs |
리스트 관련 기타 메서드
메서드명 | 사용법 | 설명 | 시간복잡도 |
append() | 변수명.append() | 리스트에 원소 하나 삽입 | O(1) |
sort() | 변수명.sort() | 오름차순 정렬 | O(NlogN) |
변수명.sort(reverse=True) | 내림차순 정렬 | ||
reverse() | 변수명.reverse() | 리스트의 원소 순서 뒤집기 | O(N) |
insert() | 변수명.insert(인덱스, 값) | 인덱스 위치에 값을 삽입 | O(N) |
count() | 변수명.count(값) | 리스트에 특정 값을 가지는 데이터 갯수를 셀때 사용 | O(N) |
remove() | 변수명.remove(값) | 특정값을 갖는 원소를 제거한다. 값이 여러개면 하나만 제거한다. | O(N) |
문자열 자료형
문자열 초기화
1
2
3
4
5
|
data = 'Hello World'
print(data) # Hello World
data = "Don't you know \"Python\"?"
print(data) # Don't you know "Python"?
|
cs |
문자열 연산
1
2
3
4
5
6
7
8
9
10
11
12
|
# 문자열의 합연산
a = "Hello"
b = 'World'
print(a + ' ' + b) # Hello World
# 문자열의 곱 연산
a = "String"
print(a * 3) # StringStringString
# 문자열의 인덱싱, 슬라이싱
a = "ABCDEF"
print(a[2:4]) # CD
|
cs |
튜플 자료형
1
2
3
4
5
|
#튜플은 리스트와 거의 비슷하다.
a = (1, 2, 3, 4)
print(a) # (1, 2, 3, 4)
a[2] = 7 # ERROR! 튜플은 한 번 선언된 값을 변경할 수 없다.
|
cs |
사전 자료형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 사전 자료형은 '키'와 '값'의 쌍을 데이터로 가지는 자료형
# 파이썬의 사전 자료형은 해시테이블을 이용, 데이터의 검색 및 수정이 O(1)의 시간에 처리할 수 있음
data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'
print(data) # {'사과': 'Apple', '바나나': 'Banana', '코코넛': 'Coconut'}
if '사과' in data:
print('사과 있음') # 사과 있음
# 키 데이터만 담은 리스트
key_list = data.keys()
print(key_list) # dict_keys(['사과', '바나나', '코코넛'])
# 값 데이터만 담은 리스트
value_list = data.values()
print(value_list) # dict_values(['Apple', 'Banana', 'Coconut'])
|
cs |
집합 자료형
집합 자료형 소개
집합은 다음과 같은 특징이 있다.
- 중복을 허용하지 않음.
- 순서가 없다.
1
2
3
4
5
6
7
|
# 집합 자료형 초기화 방법 1
data = set([1, 1, 2, 3, 4, 4, 5])
print(data) # {1, 2, 3, 4, 5}
# 집합 자료형 초기화 방법 2
data = {4, 4, 3, 2, 1, 1, 5}
print(data) # {1, 2, 3, 4, 5}
|
cs |
집합 자료형의 연산
1
2
3
4
5
6
7
8
9
10
11
|
a = {1, 2, 3, 4, 5}
b = {3, 4, 5, 6, 7}
# 합집합
print(a | b) # {1, 2, 3, 4, 5, 6, 7}
# 교집합
print(a & b) # {3, 4, 5}
# 차집합
print(a - b) # {1, 2}
|
cs |
집합 자료형 관련 함수
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
data = {1, 2, 3}
print(data) # {1, 2, 3}
# 새로운 원소 추가
data.add(4)
print(data) # {1, 2, 3, 4}
# 새로운 원소 여러 개 추가
data.update([5, 6])
print(data) # {1, 2, 3, 4, 5, 6}
# 특정한 값을 갖는 원소 삭제
data.remove(3)
print(data) # {1, 2, 4, 5, 6}
|
cs |