티스토리 뷰
목차
이 포스트는 파이썬 2.7을 기준으로 작성되었습니다. 하지만, 기본 자료형, 문자열, 각종 수식은 2.x 3.x 거의 비슷해 파이썬 버전에 상관없이 이 글을 읽고 공부하실 수 있습니다.
정수 (int)
정수(int)는 다음과 같이 설명합니다.
1 | num = 1234 # 양의 정수 | cs |
0o(0O) 0x(0X) 0b(0B)는 각각 8진수, 16진수, 2진수를 의미합니다.
1 2 3 | num = 0o777 # 8진수 (0o 시작하는 숫자는 8진수로 간주) num = 0xffff # 16진수 (0x 시작하는 숫자는 16진수로 간주) num = 0b11000100 # 2진수 (0b 시작하는 숫자는 2진수로 간주) | cs |
정수 (long)
파이썬 정수(long)는 정수(int)를 초과하는 자릿수의 정수를 처리합니다. 끝에 l 또는 L을 달고 있지만, l은 1로 오인하기 쉬우므로 L을 사용하는 것이 좋습니다. 정수(int)의 최대값(sys.maxint)은 시스템에 따라 다르며 2의 31승 -1이거나 2의 63승 -1이기도 합니다.
1 | num = 9223372036854775808L | cs |
정수는 메모리가 허락하는 범위 안에서는 자릿수에 제한이 없고, 정수끼리의 연산에서 계산 오차도 발생하지 않습니다.
1 | num = 1234567890123456789012345678901234567890123456789012345678901234567890L | cs |
Python3에서는 정수(int)와 정수(long)는 통합된 모든 정수(int)로 취급됩니다. L 및 l은 폐지되었습니다.
1 | num = 123L # Python3에서는 오류 (SyntaxError 예외) | cs |
부동 소수 (float)
파이썬 부동 소수(float)은 다음과 같이 설명합니다. e2는 10의 제곱을 의미합니다.
1 2 3 | num = 1.234 # 부동 소수점 num = 1.2e3 # 부동 소수점 숫자 (지수 표기) 1.2 × 10 3 num = 1.2E-3 # 부동 소수점 숫자 (지수 표기) 1.2 × 10 -3 | cs |
허수(complex)
허수 ( complex )는 j 또는 J 를 붙인다.
1 | num = 3.14j | cs |
부울(bool, 불 또는 불리언으로도 부름)
부울(bool)은 True 또는 False로 나타냅니다. 첫 글자는 대문자입니다.
1 2 | bool = True bool = False | cs |
Python은 False, 숫자 0과 0.0, 공백문자(""), 빈 리스트([]), 빈 튜플(()), 빈 딕셔너리({}) 등을 가짜(False)로 보고, 그 외에는 참(True)으로 간주합니다.
문자열(str)
문자열(str)은 큰따옴표(") 또는 작은따옴표 (')로 묶습니다.
1 2 | str = "Hello world" str = 'Hello world' | cs |
"..." 속에서 '...'을 "를 사용할 수 있습니다. "" 사용 중 백슬래시(\)를 사용하여 따옴표를 이스케이프(비활성화) 할 수 있습니다.
1 2 | str = "We can use \" in the string. " str = 'We can use \' in the string ' | cs |
백 슬래시(\)를 사용하여 파이썬 소스를 여러 행으로 나눌 수 있습니다.
1 2 | str = 'Hello \ world! ' | cs |
"..." 또는 '...' 앞에 r 또는 R을 쓰면 해당 소스 라인의 이스케이프 시퀀스가 무시됩니다.
1 2 | str = 'aaa \ nbbb'# \ n 개행 간주 str = r 'aaa \ nbbb'# \ n 백슬래시(\)와 소문자 n 간주 | cs |
삼중 따옴표 "" "..." "" 또는 '' '...' '' 형태로 여러 줄에 걸친 문자열을 작성할 수 있습니다. 삼중 따옴표는 종종 여러 줄에 걸친 주석으로도 이용할 수 있습니다.
1 2 3 | str = "" " A simple example module This module is ... "" " | cs |
여러 문자열을 공백으로 구분하여 연결할 수 있습니다.
1 | print 'Hello'world! ' | cs |
Unicode 문자열(unicode)
Unicode 문자열(unicode)은 ASCII 이외의 Unicode를 포함하는 문자열입니다. Python2에서는 "..." 또는 '...' 앞에 u 또는 U 를 붙입니다. Unicode 문자열(unicode)로 처리하여 문자 수를 셀 때 등, Unicode가 인식됩니다.
1 2 3 4 5 6 7 | # Python 2 len = len (u '가나다') # 3문자 len = len ( '가나다') # 바이트로 취급되기 때문에 9 문자 # Python 3 len = len ( u '가나다') # 3 문자 len = len ( '가나다') # u를 켜지 않아도 3 문자로 취급 | cs |
이스케이프 시퀀스를 비활성화하려면 ur과 UR을 추가합니다.연결
1 | print ur '아아아 \ n' | cs |
Python 3.0에서는 u가 폐지되고 "..." 또는 '...' 가 Unicode 문자열을 나타내게 되었습니다. Python 3.3에서는 u "..."이 부활했습니다.
파이썬 버전별 Unicode 차이
|
"..." '...' |
u"..." u'...' |
b"..." b'...' |
Python 2.x |
바이트 |
Unicode 문자열 |
바이트 |
Python 3.0-3.2 |
Unicode 문자열 |
Syntax Error |
바이트 |
Python 3.3- |
Unicode 문자열 |
Unicode 문자열 |
바이트 |
바이트 (bytes)
Python3에서는 "..."과 '...'을 Unicode 문자열(unicode)과 똑같이 다룹니다. 그래서 굳이 바이트를 다루고 싶을 땐, 문자열 "..."과 '...'의 앞에 b 또는 B를 추가하여 작성하여 바이트(bytes)임을 나타냅니다. Python2에서 b와 B는 무시됩니다.
1 | bytes = b '0123456789abcdef' | cs |
이스케이프 시퀀스 (\x)
문자열에서 아래의 이스케이프 시퀀스를 사용할 수 있습니다.
\ 줄 바꿈 : 백 슬래시와 줄 바꿈을 무시함
\\ : 백 슬래시 (\)
\ ' : 작은따옴표 (')
\ " : 큰따옴표 (")
\ a : 벨 (BEL)
\ b : 백스페이스 (BS)
\ f : 폼 피드 (FF)
\ n : 줄 바꿈 (LF)
\ r : 복귀 (CR)
\ t : 탭 (TAB)
\ v : 수직 탭 (VT)
\ nnn 8진수 문자 (n은 0 ~ 7)
\ x nn : 16진수 문자 (n은 0 ~ f)
\ u xxxx : 유니코드 문자 xxxx (예 : u '\ u3042')
\ U .... xxxx : 유니코드 문자 xxxxxxxx (예 : U "\ U00003042")
\ N {name} : Unicode 데이터베이스 문자 (예 : u "\ N {KIMJEONGEUN GAESAEGGI}")
문자열 포맷 (형식) (%)
% 연산자를 사용하며, C언어의 printf() 문장과 비슷합니다. 아래와 같이 문자열을 포맷을 설정할 수 있습니다.
1 2 3 4 | errmsg = "Can not open file" errcode = 19042 msg = "ERROR : % s (% d)"% (errmsg, errcode) print msg # => ERROR : Can not open file (19042) | cs |
%s 문자열, %d 정수, %f 부동 소수점, %x 16 진수, %o 8진수, %%는 % 자신을 나타냅니다.
1 2 3 4 5 6 | print "% s"% "ABC"# => ABC print "% d"% 123 # => 123 print "% f"% 1.23 # => 1.23 print "% x"% 255 # => ff print "% o"% 255 # => 377 print "%%% d"% 80 # => 80 % | cs |
% 뒤에 오는 숫자에서 문자 폭이나 정밀도를 지정할 수 있습니다.
1 2 3 4 5 6 7 | print "|%5s|" % 'ABC' #=> | ABC| : 5칸. 오른쪽 정렬 print "|%-5s|" % 'ABC' #=> |ABC | : 5칸. 왼쪽 정렬 print "|%5d|" % 123 #=> | 123| : 5칸. 오른쪽 정렬 print "|%-5d|" % 123 #=> |123 | : 5칸. 왼쪽 정렬 print "|%+5d|" % 123 #=> | +123| : ± 부호 출력 print "|%5.2f|" % 1.23 #=> | 1.23| : 전체 자릿수. 소수 자릿수 print "|%05d|" % 123 #=> |00123| : 빈자리 0으로 | cs |
파이썬 입문 강좌 11강
- 자료형 문자열 각종 수식 정리
- 변수, 상수, 문서문자열(python docstring)
- 리스트 튜플 딕셔너리 (List, Tuple, dict)
- 제어문 - if else while for in break continue
- with assert pass del print exec 사용법
- 예외 처리 방식과 스택 추적 구현 방법
- 구문 - 문법, 주석, 들여쓰기, 인코딩 규칙
- 연산자 - 산술 비트 대입 비교 논리 조건
- def, global, lambda, iterator, yield @ 사용 방법
- 인스턴스, 메소드, 상속 등 예제 총정리
- 모듈 패키지 - 빌트인 파일 이름 사용 예제
관련 글
[파이썬 입문] 구문 - 문법, 주석, 들여쓰기, 인코딩 규칙
파이썬 배열 역순(거꾸로) 출력, reversed, slice notation