본문 바로가기
C++ 200제/코딩 IT 정보

[파이썬 입문] 자료형 문자열 각종 수식 정리

by vicddory 2019. 7. 26.

이 포스트는 파이썬 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강


관련 글

[파이썬 입문] 클래스 사용법 - 4단계로 마스터

[파이썬 입문] 구문 - 문법, 주석, 들여쓰기, 인코딩 규칙

파이썬 아나콘다 Ubuntu 18.04에 설치 도입

파이썬 배열 역순(거꾸로) 출력, reversed, slice notation

파이썬 print 재귀함수, 반복 출력, 문자열 거꾸로 뒤집기

토탈커맨더 사용법, 파일 이름 일괄변경 [윈도우 10 x64 설정]

댓글