수치형 자료형


 프로그래밍 공부를 해보신 분들은 수치형 자료형이 뭔지 알고 계실겁니다. 수치형 자료형은 쉽게 말해 수치를 표현 하는 자료형이라고 말할 수 있습니다. 파이썬에서는 정수형, 실수형, 롱형, 복소수형이 있습니다.


 자료형 공부에 앞서, 저처럼 이클립스에서 실습을 할 때 한글 주석을 넣으면 오류가 발생합니다. 아래와 코드를 넣어주면 한글로 주석을 달아도 오류가 발생하지 않습니다.

# -*- coding: utf-8 -*-


- 정수형


 정수형은 쉽게 말해 소수 영역이 없는 수로 타입은 int를 사용합니다. 사용은 아래와 같습니다. 8진수와 16진수에는 정수앞에 각각 0과 0x를 붙여줍니다.

----------------------------------------------------------------------------------------

# -*- coding: utf-8 -*- #한글 주석을 사용하기 위해 사용

a=11   # 10진수

b=011  # 8진수

c=0x11 # 16진수

print a

print b

print c

----------------------------------------------------------------------------------------

(출력 결과)

11

9

17

----------------------------------------------------------------------------------------


 정수형(int)의 최대 크기는 sys모듈의 maxint를 확인하면 알 수 있습니다.

----------------------------------------------------------------------------------------
import sys
print sys.maxint
----------------------------------------------------------------------------------------
(출력 결과)
2147483647
----------------------------------------------------------------------------------------

- 실수형


 실수형은 소수영역이 있는 수로, float타입을 가집니다. 사용은 아래와 같습니다. e3은 10의 3승 e5는 10의 5승을 뜻합니다.

----------------------------------------------------------------------------------------
a=1.2
b=1.3e3
c=-0.5e5
print a; print b; print c
----------------------------------------------------------------------------------------
(출력 결과)
1.2
1300.0 # 1.3*10^3승인 1300.0 이 출력됩니다.
-50000.0
----------------------------------------------------------------------------------------
 위의 결과 처럼 바껴서 출력되는 이유는 print함수의 str(repr) 내장 함수 때문이라고 합니다.


- 롱형

 

 롱형 상수는 큰 자리수의 수를 표현할때 사용합니다. 숫자의 끝에 L문자를 붙여서 사용하는데, 정수형의 최대크기(maxint)를 넘어가면 명시적으로 롱형으로 변환됩니다. 하지만, 굳이 큰 수가 아닌 작은 수여도 L을 붙인다면 타입이 롱형이 됩니다.
----------------------------------------------------------------------------------------
h=12345678901234565L
h2=12345678901234565 # 명시적으로 롱형으로 변환
print h; print h2
print type(h); print type(h2)
----------------------------------------------------------------------------------------
(출력 결과)
# 같은 값인 롱형으로 출력되며, 타입도 롱형으로 동일합니다.
12345678901234565
12345678901234565
<type 'long'>
<type 'long'>
----------------------------------------------------------------------------------------

- 복소수형


 복소수형은 실수부와 허수부의 합으로 구성된 수를 뜻합니다. 자세하게 복소수의 수학적인 내용이 궁금하신 분들은 아래 링크를 참고하시길 바랍니다.
http://terms.naver.com/entry.nhn?docId=1103039&cid=40942&categoryId=32206
 허수에는 j를 붙여 연산하며, 각각 실수부와 허수부끼리 연산합니다.
----------------------------------------------------------------------------------------
a=10+20j
b=30+50j
print a+b
----------------------------------------------------------------------------------------
(출력 결과)
(40+70j)
----------------------------------------------------------------------------------------
 참고로, 복소수형 관련 내장함수로 complex()라는 함수가 있는데, 인자로 값을 넣어주면 아래와 같은 복소수 형태로 반환해줍니다.
complex(1.1,5) -> (1.1+5j)

- math 모듈


 수학적인 값들을 저장하고 있는 모듈입니다. math모듈을 임포트 하면, pi를 비롯해 e, sin, sqrt(제곱근을 구하는 함수)등을 사용 할 수 있습니다.
----------------------------------------------------------------------------------------
import math
print math.pi
print math.e
print math.sin(5)
print math.sqrt(4)
----------------------------------------------------------------------------------------
(출력 결과)
3.14159265359
2.71828182846
-0.958924274663
2.0
----------------------------------------------------------------------------------------

문자열 자료형


 파이썬에서 문자열 자료형은 단일 따옴표(')와 이중 따옴표(") 모두 문자열을 사용할 수 있습니다.
----------------------------------------------------------------------------------------
a='park hye ung'
b="Park Hye Ung"
----------------------------------------------------------------------------------------
(출력 결과)
park hye ung
Park Hye Ung
----------------------------------------------------------------------------------------

 문자열의 자료형은 다른 언어에서 처럼 변경이 되지 않습니다.  문자열의 주요 기능으로 인덱싱 슬라이싱이 있습니다.
 

- 인덱싱(Indexing)


 C언어에서의 배열처럼 파이썬에서도 문자열을 할당하면 다음과 같이 인덱스가 0번부터 시작합니다. 이때 인덱스 -1번은 맨뒤의 문자를 의미합니다. 인덱싱은 이러한 인덱스의 번호를 이용하는 방법입니다.
----------------------------------------------------------------------------------------
a="Hello!!"
print a[0]; print a[-1]
----------------------------------------------------------------------------------------
(출력 결과)
H # 맨 앞 문자 출력
! # 맨 뒤 문자 출력
----------------------------------------------------------------------------------------

- 슬라이싱(Slicing)

 
 슬라이싱은 인덱싱을 이용해서 부분적으로 인덱스를 출력할 수 있는 방법입니다. 형식은 start(inlcluded) : stop(excluded) : step 의 형태입니다. included와 excluded를 써논 이유는 range함수처럼 시작하는 인덱스는 포함하고, 끝나는 인덱스는 포함하지 않기 때문입니다.
----------------------------------------------------------------------------------------
a="Hello!!"
print a[1:3] # 1번인덱스부터 3-1번인덱스까지 출력
print a[4:]  # 4번 인덱스부터 출력
print a[:5]  # 5-1번 인덱스까지 출력
print a[::-1] # -1번(맨뒤)인덱스부터 출력 -> 거꾸로 출력
----------------------------------------------------------------------------------------
(출력 결과)
el
o!!
Hello
!!olleH
----------------------------------------------------------------------------------------

- 문자열의 연산

 
 문자열의 연산은 +와 *가 있습니다. +는 두 문자열을 연결해주고 *는 해당 문자열을 반복해 줍니다. 아래와 같이 사용할 수 있습니다.
----------------------------------------------------------------------------------------
a="Hello!"
b=" "
c="world~"
print a+b+c  # a,b,c 문자열을 모두 합쳐서 출력
print a*3      # a를 3번 반복해서 출력
----------------------------------------------------------------------------------------
(출력 결과)
Hello! world~
Hello!Hello!Hello!
----------------------------------------------------------------------------------------

 문자열의 길이는 len내장 함수를 통해 알 수 있습니다. 공백까지 문자열의 길이에 포함됩니다. 사용 형태는 다음과 같습니다. 
----------------------------------------------------------------------------------------
s="Hel lo!"
print len(s)
----------------------------------------------------------------------------------------
(출력 결과)
7
----------------------------------------------------------------------------------------

 마지막으로, 문자열내 포함관계 여부를 알 수 있는 키워드가 있습니다. in과 not in 인데, 참 거짓에 따라 True/False를 반환합니다. in은 포함할 경우, not in은 포함하지 않을 경우 True를 반환합니다.
----------------------------------------------------------------------------------------
s='park Hye Ung'
print 'park' in s
print 'park' not in s
print 'hello' not in s
----------------------------------------------------------------------------------------
(출력 결과)
True
False
True
----------------------------------------------------------------------------------------

* 출처 : 한국기술교육대학교 온라인평생교육원 파이썬프로그래밍
          두산 백과 - 복소수




+ Recent posts