原文: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__()方法。
不要对使用哪个感到困惑。你可以执行向下取整除的三种方式的工作方式相同。但是我建议你使用双斜线 // 运算符,因为你可以用它来减少输入。
感谢你阅读本文。