본문 바로가기
Program/Python

Python int 함수

by 시레엔 2017. 4. 17.
반응형

안녕하세요.

이번에는 저번 Python 포스팅에 이어서 정수와 부동 소수점등의 내장함수에 대해서 말하려고 합니다.

일반적으로 정수는 5, 1,000과 같은 것을 정수라하며, 부동소수점수는 3.14나 1.1e2 과 같은 형태를 말합니다.

이에 따라서 연산은 아래와 같은 형식으로 수행합니다.

 연산자

 설명

예제

결과 

 +

더하기 

1 + 1

2

 -

빼기 

2 - 1

1

 *

곱하기 

1 * 2

2

 /

 부동소수점 나누기

5 / 2

2.5

 //

정수 나누기(소수점 이하 버림) 

5 // 2

2

 %

 나머지만 보임

 5 % 2

 5

 **

지수 

 3 ** 4

 81


위와 같은 형태로 연산자를 적용하여 Python의 계산을 수행할 수 있으며, 기본적인 부분이기 때문에 어려운 점은 없을 것이라고 생각합니다. 또한, 위의 연산자를 쓰지 않고도 몫과 나머지를 얻을 수 있는 방법도 있습니다. 예를 들면 '5 / 2'의 수식이 적용될때 2이고, 나머지5라는 값을 갖습니다. 여기서 앞의 '5 / 2' 대신에 divmod(5 ,2)라는 명령어를 사용하게 되면, 순서쌍의 형태인 (2, 5)로 나타나게 됩니다.


또한, 계산 연산자가 2개 이상으로 적용될때 Python 안에서는 우선순위라는 것이 적용됩니다.

예를 들면, '2 + 3 * 4'라는 수식을 적용했다고 했을때 순차적으로 계산하는 방법을 쓰면 20이라는 답이 나옵니다. 하지만, 우선순위를 부여하여 곱하기부터 한다면 14라는 답이 나옵니다. 다른 컴퓨터 언어와 비슷하게 Python에서도 우선순위를 가져서 14라는 값이 나옵니다. 그래서 이것을 봤을때 Python에서도 우선순위의 규칙을 가지고 있습니다만 모든 규칙을 다 외울 수 없기 때문에, '2 + ( 3 * 4 )'라는 식으로 적용하는 것이 제일 안정적인 결과값을 도출 할 수 있습니다.


두번째는 데이터 타입의 형 변환에 따른 결과값에 대해서 알아보도록 하겠습니다.

>>> int(True)

1

>>> int(False)

0


>>> int (13.3)

13

>>> int (12.1e2)

1210


>>> int ('104 dong')

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ValueError : invalid literal for int() with base 10 : '104 dong'


>>> int ('1.0e4')

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ValueError : invalid literal for int() with base 10 : '1.0e4'


일반적으로 첫번째 예제에 나온 것은 'True=1'의 값을 가지고, 'False=0'이라는 값을 가진다. 이것은 파이썬에서 가장 간단한 데이터 타입은 True와 False 값만을 가진 부울형입니다. 


두번째 예제로는 실수형의 숫자를 int형으로 변환하였을때는 13.3이라는 실수형의 정수부인 13만 출력을 하게 된다. 또한, 12.1e2의 경우에는 10의 2승이 적용되어져서 1210이라는 값을 출력하게 됩니다.


마지막 예제에서는 int형의 변수를 출력할때의 에러가 나타나는 부분에 대한 설명입니다.

'104 dong'이라는 수치를 int형으로 출력할때 시작하는 부분에서만 104라는 숫자를 입력한 것이고 이후에 dong은 문자열의 변수이기 때문에 에러가 발생하게 됩니다. 또한, int()의 경우에는 부동소수점수나 숫자로 이루어진 문자열을 정수로 반환하는 역할을 하나 소수점 혹은 지수를 포함하는 문자열은 처리하지 않는 방식을 가지고 있습니다.


여기까지 해서 Int 함수에 대한 포스팅을 마치겠습니다.

반응형

댓글