-
파이썬의 자료형 - 숫자형Python/study 2013. 12. 11. 11:00
※ 주의사항
아래 공격 코드는 연구 목적으로 작성된 것이며, 허가 받지 않은 공간에서는 테스트를 절대 금지합니다.
악의 적인 목적으로 이용할 시 발생할 수 있는 법적 책임은 자신한테 있습니다. 이는 해당 글을 열람할 때 동의하였다는 것을 의미합니다.
해당 문서의 저작권은 해당 저자에게 모두 있습니다. 다른 용도로 사용할 시 법적 조치가 가해질 수 있습니다.
상세 분석
모든 언어를 공부할때는 자료형을 먼저 배웠습니다. 사실 Hello World를 출력하는 것부터 시작하지만..
이 포스팅에서는 패스 하도록 하겠습니다 ^^
그럼 자료형의 처음으로 파이썬에서 숫자형을 사용하는 방법들을 알아보도록 하겠습니다.
1. 정수형( Normal Integer )
먼저 정수형입니다. 정수가 무엇인지는 중학교에 재학중이거나 졸업하셨다면 모르시는 분은 없을거라 생각됩니다.
정수형을 선언하기 위해서는 간단합니다. 정수형 데이터를 저장하기 위한 변수를 선언해주고 대입할 값을 적어주시면 됩니다.
위와 같이 정수형 데이터를 넣을 변수를 선언하고, 넣을 정수를 적어줍니다. 정수는 양의 정수, 음의 정수, 0 이 있습니다.
사실 저는 변수를 선언한다기보다 명시한다고 하고 싶습니다. 기존 사용하던 C언어나 JAVA의 경우에는 정수형이나 문자형, 혹은 실수형 데이터를 저장하기 위해서는 변수에 자료형을 명시하여 "이 변수는 정수형이다!"라고 선언을 했습니다.
정리 2) 변수 = 데이터 : 어떤 형태든 데이터를 담을 변수를 먼저 명시하고, equal 기호를 적은 다음 데이터를 적습니다.
하지만 파이썬에서는 그렇지 않습니다. 뒤에서 알게 되겠지만 일반적인 정수형, 실수형, 문자형, 배열등의 데이터를 담는 하나의 변수는 자료형에 얽매이지 않고 어떤 형태든 그냥 데이터를 담는 역할에 충실합니다.
따라서 저는 변수를 선언한다기 보다 그냥 "어떤 데이터를 담을 공간을 명시한다"라고 하고 싶습니다.
그래서 누가 뭐래든 앞으로는 변수를 선언한다기보다 명시한다고 하도록 하겠습니다.
2. 큰 정수형( Long Integer )
다음은 큰 정수형입니다. 말 그대로 크기가 아주 큰 정수형입니다.
제가 잘 쓸일이 있을 지는 아직 모르겠지만, 파이썬에서도 이런 큰 숫자를 변수에 담을 수 있습니다.
무작정 큰 숫자를 담아 보았습니다. 솔직히 에러날까 조마조마 했는데 들어갔네요. 메모리가 허용하는 한 저렇게 엄청난 숫자를 담을수가 있습니다. 그런데 숫자의 맨 뒤에 문자가 하나 있는 것을 보실 수 있습니다. 저 문자 큰 정수형의 키워드입니다.
직관적으로 저 'L' 이라는 문자는 길다는 의미의 'Long' 을 표현하는 것이라고 생각이 됩니다.
정리 3) 29837492498L : 큰 정수의 뒤에는 문자 'L'을 붙여줍니다.
3. 소수점 이하의 숫자( Floating-point )
소수점 이하의 숫자도 사용이 가능합니다. 단순하게 그냥 원하는 수를 적어 넣으면 됩니다.
그런데 위 그림에 보면 e 라는 문자가 숫자에 포함이 되어 있습니다. e 또는 E를 사용하면 되는데, 이는 10의 거듭제곱을 나타내기 위해 사용하는 문자입니다. 예를 들어 num이라는 변수에 1e2라는 값을 넣었다고 가정합니다.(1E2도 같습니다.)그럼 num이라는 변수에 들어간 값은 1 X 10^2 가되어 100이 되는 것입니다. 하지만 여기서 조심해야 할 것이 있습니다.
e 또는 E를 사용하여 저장한 값은 결과가 소수점의 형태로 나오는 것입니다. 즉 1e2를 넣었다고 하면 출력한 결과는 100이 아니라 100.0 이 나오는 것입니다.
정리 4) e 또는 E : 10의 거듭제곱을 나타내며, 결과는 소수형태로 나타납니다.
4. 8진수( Octal )
파이썬에서 8진수를 나타내기 위해서는 숫자 앞에 '0'을 붙이면 됩니다. 저는 8진수 하면 문어가 생각이 나는데 0을 떠올리려면 문어 머리를 생각하면 되겠네요. 0 = 문어머리 ㅋㅋㅋ 죄송합니다. 사실 문어머리보단 Octal의 'O'를 생각하시면 되겠습니다.
위와 같이 그냥 쓰고 싶은 8진수 숫자 앞에 숫자 0을 붙이면 됩니다. 위의 예에서는 8진수 76과 8진수 2를 더했는데요.결과는 64가 나왔습니다. 8진수 20 이 되는 것입니다. 위처럼 결과는 8진수가 아닌 10진수로 나옵니다.
정리 5) 077 : 8진수를 나타낼때는 8진 숫자의 맨 앞에 숫자 0을 붙입니다.
5. 16진수( Hexadecimal )
16진수는 16진수 숫자 앞에 숫자 0과 x를 차례로 붙입니다. 0x12 처럼 말이죠. 이건 0 <- 팔진수 x <- 두배로 보면 되겠습니다. 사실 제가 이렇게 굳이 설명 안드려도 아실테니 이제부터는 안하겠습니다.
16진수도 마찬가지로 연산한 결과는 10진수로 나타납니다. 그리고 16진수에서 사용되는 문자는 대문자 소문자를 구분하지 않기 때문에 쓰기 편하신 것으로 쓰면 됩니다. 위의 예에서도 대문자 소문자 가리지 않고 사용해보았습니다.정리 6) 0x4e5 : 16진수를 사용하기 위해서는 16진수 숫자 앞에 숫자 0과 x 또는 X를 차례로 붙이면 됩니다.
6. 복소수( Complex number )
다음은 복소수입니다. 복소수를 지원하다니 놀랍습니다. 1학년 학부생때 C언어를 이용하여 복소수 계산을 하는 프로그램을 작성하라는 과제가 나왔을 때 많은 친구들이 쩔쩔매던 모습들일 떠오릅니다. 그때 파이썬을 사용한 수업이었다면 그런 과제는 나오지도 않았을 것입니다. 복소수는 허수부분에 j 또는 J 를 붙이면 됩니다. 왜 i 를 사용하지 않느냐고 물으시면 저도 그건 모르겠습니다. 만든사람 마음이죠.
위와 같이 j를 사용하여 복소수의 허수부분을 표현하였습니다.여기서 추가적으로 복소수 자체가 가지고 있는 복소수 관련 함수들이 있습니다. 하나하나 설명을 드리겠습니다.먼저 복소수의 실수부분을 반환해주는 함수 real 입니다.복소수가 저장된 변수에 .real을 붙이면 복소수의 실수부분을 반환하여 줍니다.그리고 허수부분을 반환해주는 함수 imag입니다. 역시 마찬가지로 복소수가 저장된 변수에 .imag를 붙이면 됩니다.다음은 복소수의 켤레 복소수를 반환해주는 함수 comjugate()입니다. 이놈은 특이하게 뒤에 괄호를 붙여주어야합니다.마지막으로 복소수의 절대값을 반환해주는 함수 abs()입니다. abs(변수)와 같은 형식으로 사용하면 됩니다.정리 7) 5 + 7j : 복소수를 사용하기 위해서는 허수부분에 j 또는 J를 붙이면 됩니다. 복소수는 자체 함수도 가지고 있습니다. (.real, .imag, .conjugate(), abs() )Bonus. 숫자형의 연산방법지금까지 숫자형태의 자료형에 대하여 알아보았습니다. 이런 숫자형들의 연산은 어떻게 하는가?방법은 매우 단순하였습니다. 역시 간결함을 중시하는 파이썬인 것 같습니다. 바로 예를 보도록 하겠습니다.사실 위와 같은 간단한 연산을 할 경우에는 굳이 변수를 명시할 필요도 없습니다. 바로 다음 예를 보도록 하겠습니다.제가 여기서 파이썬에 반했습니다. C언어나 JAVA로 하려면 이런 간단한 계산을 하려고 해도 최소 하나의 변수를 선언해야 했습니다. 하지만 이 얼마나 간결한 문장입니까 1 + 2 만 적고 엔터를 신명나게 탁! 치면 결과가 바로 나옵니다.
다음은 나누기입니다. 몫과 나머지를 구하는 과정을 보도록 하겠습니다.
나누기 연산자는 ' / ' 입니다. 그런데 나누기 연산을 할 때 주의해야할 것이 있습니다. 그것은 피제수가 제수보다 작으면 몫이 0으로 나타난다는 것입니다.
중학교 과정 이상을 이수하였다면 무의식적으로 나누기 연산을 할 때 피제수가 제수보다 작다면 몫이 소수점이하의 숫자로 나타날 것으로 생각을 합니다. 하지만 컴퓨터는 매우 정직하기 때문에 5를 7로 나누면 7이 한번도 못들어간다는 것을 알고 있습니다. 그래서 몫이 0이 나와버리는 것입니다.
하지만 위와 같이 피제수 또는 제수에 '.0'을 붙여 둘 중 어느 한 숫자를 소수로 만들어 버리면 그 문제는 해결이 되어 몫이 소수점 이하의 숫자로 표시가 됩니다.
그리고 나머지를 구하는 연산은 '%'를 사용합니다. 프로그래밍 언어를 한번이라도 접해보았다면 '%'가 나머지를 구할 때 쓰는 mod연산자라는 것을 알고 있을 것입니다.
정리 8) 5.0/7 : 제수가 피제수보다 큰 경우 소수형태의 몫을 원한다면 둘 중 하나의 숫자에 '.0'을 붙여야 합니다.
마지막으로 지수 연산에 대하여 알아보고 이번 포스팅을 마치도록 하겠습니다.
지수연산은 '**'을 사용합니다. * 라는 문자가 하나 있으면 곱하기 연산이 됩니다. 그러나 * 라는 문자가 두개가 붙으면 거듭제곱의 연산이 됩니다. 위의 예처럼 2 ** 10을 하면 2를 10번 곱한다는 의미가 되어 2의 10 거듭제곱의 결과나 나타납니다.
정리 9) 2 ** 10 : 거듭제곱 연산을 하기위해서는 ** 연산자를 사용합니다.
이것으로 파이썬의 자료형 중 숫자형과 그 연산방법에 대한 방법들을 알아보았습니다.
다음은 문자형에 대한 포스팅을 해보도록 하겠습니다.
정리모음
정리 2) 변수 = 데이터 : 어떤 형태든 데이터를 담을 변수를 먼저 명시하고, equal 기호를 적은 다음 데이터를 적습니다.
정리 3) 29837492498L : 큰 정수의 뒤에는 문자 'L'을 붙여줍니다.
정리 4) e 또는 E : 10의 거듭제곱을 나타내며, 결과는 소수형태로 나타납니다.
정리 5) 077 : 8진수를 나타낼때는 8진 숫자의 맨 앞에 숫자 0을 붙입니다.
정리 6) 0x4e5 : 16진수를 사용하기 위해서는 16진수 숫자 앞에 숫자 0과 x 또는 X를 차례로 붙이면 됩니다.
정리 7) 5 + 7j : 복소수를 사용하기 위해서는 허수부분에 j 또는 J를 붙이면 됩니다. 복소수는 자체 함수도 가지고 있습니다. (.real, .imag, .conjugate(), abs() )정리 8) 5.0/7 : 제수가 피제수보다 큰 경우 소수형태의 몫을 원한다면 둘 중 하나의 숫자에 '.0'을 붙여야 합니다.정리 9) 2 ** 10 : 거듭제곱 연산을 하기위해서는 ** 연산자를 사용합니다.참고 URL 및 도서
- JUMP TO Python, 박응용 저, 2001년, 정보게이트 펴냄
'Python > study' 카테고리의 다른 글
파이썬의 파일 입출력 (0) 2013.12.18 파이썬의 조건문 (0) 2013.12.18 파이썬의 자료형 - 사전 (0) 2013.12.18 파이썬의 자료형 - 집합 (0) 2013.12.18 파이썬의 자료형 - 튜플 (0) 2013.12.18 파이썬의 자료형 - 리스트 (0) 2013.12.18 파이썬의 자료형 - 문자열(추가) (0) 2013.12.18 파이썬의 자료형 - 문자열 (1) 2013.12.13 파이썬을 시작하는 방법 (1) 2013.12.11 파이썬(Python)을 시작하며... (4) 2013.12.11