상세 컨텐츠

본문 제목

파이썬 기초 문법 정리

똑똑한 개발/Algorithm 과 Data Structure

by 성댕쓰 2022. 1. 4. 22:08

본문

파이썬 수 자료형

정수형, 실수형이 있다. 실수형 데이터는 정확도가 떨어지므로 round함수를 이용한다.

 

a = 0.6
b = 0.3

print(a+b)

if a + b == 0.9:
    print(True)
else:
    print(False)

if round(a + b, 4) == 0.9:
    print(True)
else:
    print(False)
    
****************

0.8999999999999999
False
True

 

다른 언어와 다르게 / 연산자는 실수형을 반환한다. 몫을 얻고 싶으면 // 를 사용한다.

a = 7
b = 3

print(a/b)
print(a//b)
print(a%b)

****************

2.3333333333333335
2
1

 

리스트 자료형

데이터를 연속적으로 담는 자료형

C++ STL vector와 기능적으로 유사. c++ array를 써야할 곳에 리스트 자료형 쓰면 된다.

초기화 방법

a = [1,2,3,4]
a = [0] * 10
a = list()
a = []

# 리스트 컴프리핸션
array = [i for i in range(10)]
print(array)

# 0부터 19까지의 수 중에서 홀수만 포함하는 리스트
array = [i for i in range(20) if i%2 == 1]
print(array)

# 1부터 9까지의 수들의 제곱 값을 포함하는 리스트
array = [ i*i for i in range(1, 10)]
print(array)

# nxm 2차원 배열 만들기
n = 4
m = 3
array = [[0]*m for _ in range(n)]
print(array)

*****************************
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
[1, 4, 9, 16, 25, 36, 49, 64, 81]
[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

뒤에서 부터 indexing 할 수 있음.

a = [1,2,3,4,5,6,7]
print(a[-1])
print(a[-3])

*************

7
5

슬라이싱은 :을 이용, 가져오고자 하는 끝 인덱스는 실제 인덱스 + 1

a = [1,2,3,4,5,6,7]
print(a[1:3])
*******************
[2, 3]

 

문자열 자료형

큰 따옴표 또는 작은 따옴표 이용. 백슬래시 이용 문자열에 큰 따옴표, 작은 따옴표 추가 가능.

문자열 변수에 덧셈(+) 이용하면 문자열이 연결 됨.

문자열에 대해서 인덱싱, 슬라이싱 가능 그러나 특정 인덱스의 값을 변경할 수는 없다.(Immutable)

a = "Hello"
b = "World"

print(a+b)
print(a*2)
print(a[2:5])

# str is immutable
# a[3] = "a"

********

HelloWorld
HelloHello
llo

 

튜플 자료형

리스트와 유사 몇 가지 차이있음

차이점

- 튜플은 한 번 선언된 값을 변경할 수 없음.

- 리스트는 대괄호([])를 이용하지만, 튜플은 소괄호(())를 이용

 

튜플을 사용하면 좋은 경우

- 서로 다른 성질의 데이터를 묶어서 관리해야 할 때

  - 최단 경로 알고리즘에서는 (비용, 노드 번호) 형태로 튜플 자료형 자주 사용

- 데이터의 나열을 해싱 키 값으로 사용해야 할 때

  - 튜플은 변경이 불가능하므로 리스트와 다르게 키 값으로 사용 가능.

- 리스트보다 메모리를 효율적으로 사용해야 할 때

a = (1,2,3,4,5,6,7,8)
print(a[3])
print(a[1:4])

# tuple is immutable
# a[2] = 7

*****

4
(2, 3, 4)

 

사전 자료형

키와 값 쌍을 데이터로 가지는 자료형

Immutable 자료형을 키로 사용할 수 있음. 파이썬 사전 자료형은 해시 테이블 사용한다.

a = dict()
a['홍길동'] = 97
a['이순신'] = 98

print(a)

b = {
    '홍길동' : 97,
    '이순신' : 98
}

print(b)

key_list = list(b.keys())
print(key_list)

*******

{'홍길동': 97, '이순신': 98}
{'홍길동': 97, '이순신': 98}
['홍길동', '이순신']

 

집합 자료형

중복을 허용하지 않고 순서가 없음.

리스트 혹은 문자열을 이용하여 초기화 할 수 있음.

  - set() 함수 사용

중괄호({})안에 각 원소를 콤마(,) 기준으로 구분하여 삽입, 초기화 가능.

데이터 조회, 수정에 있어서 O(1) 시간으로 처리함.

# 집합 자료형 초기화 방법 1
data = set([1,1,2,3,4,4,5])
print(data)

# 집합 자료형 초기화 방법 2
data = {1,1,2,3,4,4,5}
print(data)

******

{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}

합집합, 교집합, 차집합 연산 지원함.

 

그외 집합 자료형 관련 함수

data = set([1,1,2,3,4,4,5])

# 새로운 원소 추가
data.add(6)
print(data)

# 새로운 원소 여러 개 추가
data.update([7, 8])
print(data)

# 특정한 값을 갖는 원소 삭제
data.remove(3)
print(data)

*****

{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 4, 5, 6, 7, 8}

 

 

참조 : (이코테 2021 강의 몰아보기) 1. 코딩 테스트 출제 경향 분석 및 파이썬 문법 부수기 - YouTube

'똑똑한 개발 > Algorithm 과 Data Structure' 카테고리의 다른 글

DFS-BFS 기본 #1  (0) 2022.01.06
HashMap 기본 (FindFirstUniqueCharacter...)  (0) 2022.01.04
HashTable 기초  (0) 2022.01.03
Hash Table 만들기  (0) 2022.01.03
Queue(Circular Queue)  (0) 2021.08.05

관련글 더보기

댓글 영역