프로그래밍의 기본은 변수
로부터 시작됩니다. 변수는 값
을 저장하는 공간이며, 이 값은 변수의 타입에 따라 숫자, 문자열, 리스트 등이 될 수 있습니다. Python은 동적 타이핑
을 사용하므로, 변수에 일단 값을 할당해 두고 나면 런타임에 타입 검사를 수행합니다. 변수의 값 할당은 assign(=)
기호를 사용합니다.
변수의 assign은 단순한 바인딩 구문이며, 이는 등호의 우변을 먼저 평가한 후 그 평가값을 좌변에 할당하게 됩니다. 따라서 우변 평가 -> 좌변 할당이라는 순서를 알고 있으면 좋습니다. Python의 변수는 기본 자료형
과 Iterable 자료형
으로 나누는 것이 좋고, 여기서는 기본 자료형에 대해서 다뤄 보도록 하겠습니다.
숫자형
Python의 숫자형은 정수, 실수를 포함해 숫자 형태로 이루어진 자료형입니다. Python의 모든 숫자 자료형은 최소값과 최대값에 대한 제한이 없습니다. Python의 숫자형은 아래처럼 나눌 수 있습니다.
- 정수(int) : 말 그대로 정수 자료형입니다.
- 실수(float) : 소수점이 포함된 숫자를 말하며, e 표기법도 사용할 수 있습니다. 다른 언어에서 실수를 다루기 위해 float과 double 타입이 따로 있는 것에 비해, Python은 float 타입만 사용합니다.
- 8진수(int) : 0o로 시작되며 8진법으로 표현되는 정수를 뜻합니다.
- 16진수(int) : 0x로 시작되며 16진법으로 표현되는 정수를 뜻합니다.
아래는 각 숫자형 데이터 타입들을 변수에 할당하는 예입니다.
사칙연산
다른 프로그래밍 언어들처럼, Python에서도 보편적으로 사용되는 사칙연산들이 당연히 지원됩니다.
- + : 두 항의 합
- - : 좌측 항에서 우측 항을 뺀 값
- * : 두 항의 곱
- / : 좌측 항에서 우측 항을 나눈 값(Python 2에선 무조건 소수점을 버리고 int를 리턴하지만, Python 3에선 최대 소수점 16번째 자리까지 표현된 float가 리턴됩니다. true div라고 부릅니다.)
- % : 죄측 항에서 우측 항을 나눈 나머지
아래는 각 연산자의 예입니다.
Python은 사칙연산을 위한 몇 가지의 연산자를 더 지원하고 있습니다.
- // : 좌측 항에서 우측 항을 나누어 소수점 아랫 자리를 버린 값(floor div라고 부릅니다.)
- ** : 좌측 항에서 우측 항 만큼 제곱한 값
아래는 floor div와 제곱 연산자의 예입니다.
문자열
문자열(String)
은 문자, 단어 등으로 구성된 문자들의 집합을 의미합니다. C, Java에서는 문자(char)
와 문자열(string)
을 따로 분류하고 있지만, Python은 문자를 다루는 경우 길이에 상관 없이 문자열로 통일하고 있습니다. 아래는 모두 문자열입니다.
- PlanB
- a
마지막은 blank
를 뜻합니다. 아무 문자도 들어가 있지 않더라도 문자열로 취급할 수 있다는 것입니다. 다른 언어에서 작은 따옴표(')로 감싸는 형태의 char
자료형이 없는 만큼, 문자열을 감싸는 방식은 여러가지가 있습니다.
문자열 포매팅
문자열 포매팅은 문자열 안에 특정 값을 삽입하는 것을 말합니다. 여기서 특정 값은 대체적으로 변수입니다. 포맷 코드를 이용할 수도 있고, 문자열의 format
메소드를 사용할 수도 있습니다.
보편적으로 인덱스가 제거된 포매팅 문자열과 format 메소드를 사용하는 3번을 사용합니다.
문자열을 서로 더하거나, 정수와 곱하거나, 일부를 자르는 등 수많은 작업들을 할 수 있지만 여기선 자료형에 대해서만 알아보기로 했으므로(이후의 Iterable 객체와 연관되기도 하므로) 다음으로 미루도록 하겠습니다.
bytes
Python은 byte로 이루어진 문자열을 위해 bytes
라는 타입을 지원합니다. Python에서는 바이트 문자열을 b'abcd'
와 같은 방식으로 표현합니다. 실제로 변수에는 인코딩된 상태로 할당됩니다.
Bool
불린(Boolean)
은 참(True)
또는 거짓(False)
만을 값으로 가질 수 있는 자료형입니다. 참고로 다른 언어의 boolean 자료형과 다르게 첫 문자가 대문자로 시작되는 True, False를 사용한다는 점입니다.
None
None
은 '아무 데이터를 가지고 있지 않다'라는 것을 표현하기 위해 사용합니다. Java의 null과 다르게, None이라는 값도 하나의 객체(NoneType)입니다.
타입 캐스팅
문자열 '1'을 숫자 1로 변환하고 싶다면, 타입 캐스팅
을 이용할 수 있습니다. 파이썬에서 제공되는 빌트인 함수들을 사용할 수 있습니다.
자료형의 참과 거짓
bool('hello')
가 True, bool('')
가 False인 이유는 Python의 모든 자료형엔 참과 거짓이 있기 때문입니다.
- 숫자 : 0, 0.0, 0o0, 0x0은 거짓이며, 나머지는 모두 참입니다.
- 문자열 : 빈 문자열('')은 거짓이며, 나머지는 모두 참입니다.
- bool : True는 참이며, False는 거짓입니다.
'Python 계열 > Python 레거시 글' 카테고리의 다른 글
[Python] Iterable 자료형 - Dictionary, Set (0) | 2018.06.20 |
---|---|
[Python] Iterable 자료형 - List, Tuple (1) | 2018.06.19 |
[Python] 주석 (0) | 2018.06.17 |
[Python] Hello World로 Python 둘러보기 (0) | 2018.06.16 |
[Python] 설치 (0) | 2018.06.15 |