Python 연산자 /와 // 차이 , 내장함수 isinstance()와 is_integer() 공부기록

 

[공부기록]

 

< 1. 연산자 '/' 와 '//' >

 

python으로 코딩하다가 연산자 '/'와 '//'의 차이를 알 필요가 있었다.

우선 연산자 '/'와 '//'의 차이는 반환하는 자료형이다.

 

/ 는 나눗셈의 결과가 float로 반환된다.

// 는 나눗셈의 결과가 int로 반환된다.

 

예제로 4가지 경우에 대하여 출력했다.

 

print(type(5/2))
print(type(4/2))
print(type(5//2))
print(type(4//2))

 

결과는 아래와 같다.

 

<class 'float'>
<class 'float'>
<class 'int'>
<class 'int'>

 

/ 연산자인 경우 결과가 정수인 경우에도 float로 출력된다.

// 연산자인 경우 결과가 소수인 경우에도 int로 출력된다.

 

값을 출력해봤다.

 

print((5/2))
print((4/2))
print((5//2))
print((4//2))

 

결과는 아래와 같다.

 

2.5
2.0
2
2

 

/ 연산자인 경우 정확한 나눗셈의 결과가 출력되고,

// 연산자인 경우 연산 결과가 소수인 경우 정수로 잘라서 반환한다.

 

원하는 자료형에 따라서 알맞는 연산자를 사용해야 한다!

 

< 2. 내장함수 isinstance()와 is_integer() >

 

isinstance()는 숫자가 정수 또는 부동 소수점 유형인지 여부를 결정한다.

isinstance(object, type) 방식으로 사용된다.

 

is_integer()는 float 유형 숫자가 정수인지 판별한다.

float.is_integer() 방식으로 사용된다.

 

예제를 작성해서 확인 해보았다.

 

print(isinstance(4/2,int))
print(isinstance(5/2,int))

print((4/2).is_integer())
print((5/2).is_integer())

 

두 함수 모두 정확히 나눠떨어지는 경우, 그렇지 않은 경우로 나누어서 적용시켰다.

 

결과는 아래와 같다.

 

False
False
True
False

 

isinstance() 함수의 경우 object의 type이 맞다면 True, 아니라면 False를 반환한다.

type()함수로 해당 값의 type을 알아야 하는 경우가 있는데 이를 Boolean 형식으로 받기 때문에

조건문에 따른 결과를 다르게 할 때 유용하게 활용할 수 있을 것 같다.

 

is_integer() 함수의 경우 float값이 정수로 표현할 수 있다면 True, 아니라면 False를 반환한다.

float.is_integer() 방식으로 사용되는데 해당 값이 정수인지 판별하는데 유용하다.

조건문에서 어떤 값이 정수로 표현될 수 있는지 확인할 때 도움이 되는 함수이다.

 

2가지 연산자의 차이와 2가지 내장 함수를 알아봤다.

 

예제를 통해서 어떻게 실제 코드에서 적용되는지 확인했다.