一貫性。
それを理解するには、いくつかの非常に基本的で一見無関係な説明に従う必要があります。
学校では、残りの部分で分割を学びました。そして、あなたはこのような計算をしました:
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で使用する演算子を決定します。
良い質問。学習を続けます。