일관성.
이해하기 위해서는 매우 기본적이고 겉으로는 관련이없는 설명을 따라야합니다.
학교에서 당신은 나머지 부분을 나누었습니다. 그리고 당신은 다음과 같은 계산을 수행했습니다 :
8 ÷ 4 = 2 R 0
7 ÷ 4 = 1 R 3
6 ÷ 4 = 1 R 2
5 ÷ 4 = 1 R 1
4 ÷ 4 = 1 R 0
3 ÷ 4 = 0 R 3
2 ÷ 4 = 0 R 2
1 ÷ 4 = 0 R 1
0 ÷ 4 = 0 R 0
^------ This is the result of x // 4
^-- This is the result of x % 4 (modulo)
나중에 실수에 대한 나눗셈을 배웠습니다.
8 ÷ 4 = 2.0
7 ÷ 4 = 1.75
6 ÷ 4 = 1.5
5 ÷ 4 = 1.25
4 ÷ 4 = 1.0
3 ÷ 4 = 0.75
2 ÷ 4 = 0.5
1 ÷ 4 = 0.25
0 ÷ 4 = 0.0
^--- Note that the number in front of the . is int(x/4)
이 시점까지, 당신은 믿을 수 x // 4
와 int(x/4)
항상 같은 결과를 제공합니다. 그것이 현재 상황에 대한 이해입니다.
그러나 정수 나누기에서 발생하는 일을 살펴보십시오. R 뒤의 숫자는 3, 2, 1에서 0으로 순환 한 다음 다시 시작합니다. 3, 2, 1, 0. R 앞의 숫자는 4 단계마다 감소합니다.
어떻게 진행 될까요?
8 ÷ 4 = 2 R 0
7 ÷ 4 = 1 R 3
6 ÷ 4 = 1 R 2
5 ÷ 4 = 1 R 1
4 ÷ 4 = 1 R 0
3 ÷ 4 = 0 R 3
2 ÷ 4 = 0 R 2
1 ÷ 4 = 0 R 1
0 ÷ 4 = 0 R 0
-1 ÷ 4 = -1 R 3
^------ We have to decrease now, because we already have 0 four times
^-- We have to restart the cycle at 3
동시에 실수 나누기는 다음을 제공합니다.
-1 ÷ 4 = -0.25
^----- There is still a 0 in front of the .
그래서 -1 // 4
-1을 int(-1/4)
제공 하지만 0을 제공합니다.
기능 간의 차이점에 대한 동기가 있습니까?
글쎄, 그들은 다른 목적을 제공합니다 : //
나머지를 가진 정수 계산 int()
의 일부이며 .
실수 연산 앞에 부분을 제공합니다 .
계산할 대상을 결정한 다음 올바른 결과를 얻기 위해 Python에서 사용할 연산자를 결정합니다.
좋은 질문. 계속 학습하십시오.