devych

about everything

파이썬 기초 문법 정리 - 자료형

2020-01-09 devychpython

파이썬 자료형이란?

파이썬을 통한 프로그래밍을 시작하기 전에 자료형에 대해 설명해보고 들어가려고 한다. 자료형이란 자바스크립트에서도 사용되는 용어라 익숙하다. 그래서 접근하기에도 매우 쉬웠다. 자료형은 프로그래밍을 할때 쓰이는 데이터 형태라고 간단하게 스스로 설명을 할 수 있을듯하다.

숫자형(Number)

숫자형은 말 그대로 숫자 형태의 데이터이며, 사칙연산기호(+, -, *, /)를 통해 계산이 가능하다.

>>> 2+2
4
>>> 123*3
369
>>> (200 - 50*2)/2
50.0

그 외에도 파이썬에서 유용한 연산자를 제공한다. 자바스크립트와 다른 것은 ’//‘연산자 정도이다.

>>> 3/2 # 일반적 '/'연산자는 소수점까지 반환한다
1.5

>>> 3//2 # '//'연산자는 소수점을 버리고 정수만 반환한다.
1

>>> 5%3 # '%'연산자는 나머지를 반환한다
2

>>> 3**2 #'**'연산자는 거듭제곱을 반환한다
9
>>> 3**3
27

문자형(String)

문자형은 작은따옴표 혹은 큰따옴표로 둘러싸여 있는 데이터를 말한다. 자바스크립트는 문자열 자료형은 메소드를 이용하여 변형하는 경우를 많이 사용하였는데, 파이썬은 아래와 같이 직관적으로 문자열의 변형이 가능하다.

>>> 'helloPython'
'helloPython'

# 두개의 String이 주어졌을 경우,
# '+'연산자 없이도 문자열이 하나로 합쳐진다.
>>> 'hello' 'Python'
'helloPython'

# JS는 slice, splice 등 메소드를 써야하지만,
# 파이썬은 ':'기호가 있다.
>>> 'hello' 'Python'[2:]
'lloPython'
>>> 'hello' 'Python'[:-1]
'helloPytho'

# JS는 문자열에 숫자형 데이터를 계산하면 NaN이 반환된다.
# 파이썬은 멋있다.
>>> 3 * 'hello' 'Python'[:-1]
'helloPythohelloPythohelloPytho'
>>> 3 * 'hello' + 'Python'[:-1]
'hellohellohelloPytho'

리스트(String)

’[’,’]‘대괄호로 감싸고 ’,‘쉼표로 자료를 구분하고 있는 형태를 지니고 있으며, 안에 여러 종류의 자료를 모을 수 있도록 되어있다. 자바스크립트에서 Array형태와 같다.

#name이란 변수를 선언하고 리스트를 할당
>>> name = ['Kim', 'Park', 'Yoo', 'Song']

>>> name
['Kim', 'Park', 'Yoo', 'Song']

#리스트 복사
>>> __name = name[:]
>>> __name
['Kim', 'Park', 'Yoo', 'Song']
# 2번째 자료를 변경
>>> __name[2] = 'Lee'
>>> __name
#  0  ,   1   ,   2  ,   3 >> index
['Kim', 'Park', 'Lee', 'Song']
# name의 자료는 변형되지 않음
>>> name
['Kim', 'Park', 'Yoo', 'Song']

# '+'연산자를 통해 임시로 붙이기 가능
>>> name + ['Lee', 'Ha']
['Kim', 'Park', 'Yoo', 'Song', 'Lee', 'Ha']
# 원본은 변하지 않는다.
>>> name
['Kim', 'Park', 'Yoo', 'Song']

#원본을 변화시키려면 append 메소드 사용
>>> name.append('Lee')
>>> name
['Kim', 'Park', 'Yoo', 'Song', 'Lee']

# name 리스트의 길이 반환
>>> len(name)
5

마무리

자료의 변형이 자유로워서 ‘이렇게하면 될거같은데?‘하고 실제로 해보면 대부분이 된다. 그래도 처음에는 공식문서에 기반하여 비슷하게 코드를 작성하고 생각하려고 노력하는게 중요하다고 생각한다. 물론 익숙해진 이후에 그 베이스 위에 나만의 생각으로 더 나은 방법을 찾아보는것도 반드시 필요하다.