728x90
int(a/b)와 a//b는 일반적인 경우에는 동일한 결과를 반환합니다.
그러나 몇 가지 경우에는 차이가 발생할 수 있습니다.
1. 연산 과정의 차이
a/b는 항상 실수형(float) 결과를 반환합니다. 여기에 int() 함수를 적용하게 된다면, a//b 는 나눗셈의 결과를 가장 가까운 정수로 내림한 값을 반환합니다. 예를 들어, 5//2 의 결과는 2가 됩니다.
반면에, a//b는 정수형(integer) 몫을 반환합니다. 즉, 나눗셈의 결과를 정수 부분만 남기고 나머지는 버립니다. 따라서 5//2의 결과는 2가 됩니다.
=> 결과는 동일하지만, 나눗셈의 결과를 내림한다는 것과 정수 몫을 구하고 나머지는 버림한다는 애매한 차이가 있다고 볼 수 있겠습니다.
2. 음수의 처리
가장 큰 차이라고도 할 수 있는 음수 계산입니다.
int(a/b)는 버림 연산을 수행하고, 몫 연산(//)은 내림 연산을 수행하기 때문에, 음수의 경우에는 결과가 조금 다를 수 있습니다.
예를 들어, -5/3의 경우 -5/3은 1.666.. 이고 int(-5/3)은 -1 이고 -5//3은 -2 입니다.
a = -5
b = 3
print(a/b)
print(int(a/b))
print(a//b)
int(-1.666..)의 경우 버림을 취해 -1 이라는 결과를 보이며, -5//3 의 경우 -1.666..을 내림하여 -2가 되는 것을 확인할 수 있습니다.
따라서, 일반적인 경우에는 int(a/b)와 a//b는 동일한 결과를 반환하지만, 몇몇 상황에서는 다른 결과를 반환하는 것을 유의해야 합니다.
728x90
'파이썬' 카테고리의 다른 글
[파이썬 ] itertools 사용법 (0) | 2023.09.04 |
---|---|
파이썬 이미지 파일 확장자명 한번에 바꾸기 (0) | 2023.06.10 |
[python] 프레임으로 나눠진 이미지들을 동영상으로 합치기 (0) | 2023.05.23 |
[Pytorch] custom dataset의 mean, std 구하기 (0) | 2023.05.23 |
M1, M2 맥북에서 아나콘다 파이썬 3.6 또는 3.7 설치하기 (0) | 2023.04.17 |