原文:What Does // Mean in Python? Operators in Python,作者:Kolade Chris
在 Python 中,你使用双斜线 //
运算符来执行向下取整除。此 //
运算符将第一个数字除以第二个数字,并将结果向下舍入为最接近的整数。
在本文中,我将向你展示如何使用 //
运算符并将其与常规除法进行比较,以便你了解它是如何工作的。
但是不止这些——你还将了解与双斜线 //
运算符同义的 Python 数学方法。
我们将涵盖的内容
//
运算符的基本语法- 向下取整除示例
- 双斜线
//
运算符的工作方式类似于math.floor()
- 双斜线
//
运算符如何在幕后工作 - 小结
//
运算符的基本语法
要使用双斜线 //
运算符,你的操作几乎类似于常规除法。唯一的区别是,你使用双斜线 //
而不是单斜线 /
:
firstNum // secondNum
向下取整除示例
在下面的示例中,12 除以 5 得到 2:
num1 = 12
num2 = 5
num3 = num1 // num2
print("floor division of", num1, "by", num2, "=", num3)
# Output: floor division of 12 by 5 = 2
而 12 除以 5 的常规除法将等于 2.4。即 2 余 4:
num2 = 5
num3 = num1 / num2
print("normal division of", num1, "by", num2, "=", num3)
# Output: normal division of 12 by 5 = 2.4
这表明 //
运算符将两个数字相除的结果向下舍入到最接近的整数。
即使小数点为 9, //
运算符仍会将结果向下舍入到最接近的整数。
num1 = 29
num2 = 10
num3 = num1 / num2
num4 = num1 // num2
print("normal division of", num1, "by", num2, "=", num3)
print("but floor division of", num1, "by", num2, "=", num4)
"""
Output:
normal division of 29 by 10 = 2.9
but floor division of 29 by 10 = 2
"""
如果你用负数执行除法,结果仍然会向下取整。
为了让你为结果做好准备,向下舍入一个负数意味着远离 0。因此,-12 除以 5 得到 -3。不要混淆——尽管乍一看数字似乎越来越“大”,但实际上它越来越小(远离零/更大的负数)。
num1 = -12
num2 = 5
num3 = num1 // num2
print("floor division of", num1, "by", num2, "=", num3)
# floor division of -12 by 5 = -3
双斜线 //
的工作方式类似于 math.floor()
在 Python 中,math.floor()
将数字向下舍入到最接近的整数,就像双斜线 //
运算符所做的那样。
因此,math.floor()
是 //
运算符的替代,因为它们在幕后做同样的事情。
这是一个例子:
import math
num1 = 12
num2 = 5
num3 = num1 // num2
num4 = math.floor(num1 / num2)
print("floor division of", num1, "by", num2, "=", num3)
print("math.floor of", num1, "divided by", num2, "=", num4)
"""
Output:
floor division of 12 by 5 = 2
math.floor of 12 divided by 5 = 2
"""
你可以看到 math.floor()
和 //
操作符做同样的事情。
双斜线 //
运算符如何在幕后工作
当你使用 //
运算符将两个数字相除时,在后台调用的方法是 _floordiv__()
。
你也可以直接使用此 _floordiv__()
方法代替 //
运算符:
num1 = 12
num2 = 5
num3 = num1 // num2
num4 = num1.__floordiv__(num2)
print("floor division of", num1, "by", num2, "=", num3)
print("using the floordiv method gets us the same value of", num4)
"""
Output:
floor division of 12 by 5 = 2
using the floordiv method gets us the same value of 2
"""
小结
在本文中,你了解了如何使用双斜线 //
运算符以及它在幕后的工作原理。
此外,你还了解了 //
运算符的两种替代方法——math.floor()
和 __floordiv__()
方法。
不要对使用哪个感到困惑。你可以执行向下取整除的三种方式的工作方式相同。但是我建议你使用双斜线 //
运算符,因为你可以用它来减少输入。
感谢你阅读本文。