一致性。
您需要遵循一些非常基本且看似无关的解释才能理解它。
在学校里,您学习了除法运算。您已经完成了如下计算:
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中使用哪个运算符以获得正确的结果。
好问题。继续学习。