繁体   English   中英

Python 中的两个正斜杠

[英]Two forward slashes in Python

我从基数排序中遇到了这个代码示例:

def getDigit(num, base, digit_num):
    # pulls the selected digit
    return (num // base ** digit_num) % base

//在 Python 中做什么?

//是楼层除法运算符。 它产生其操作数的商的下限,而不对整数操作数进行浮点舍入。 这有时也称为整数除法,即使您可以将它与浮点数一起使用,因为默认情况下使用/进行除法是这样做的。

在 Python 3 中,即使两个操作数都是整数,普通的/除法运算符也会返回浮点值,因此地板除法需要不同的运算符。 这与 Python 2 不同,如果两个操作数都是整数,则/执行地板除法,如果至少一个操作数是浮点值,则执行浮点除法。

当决定 Python 3 应该具有这种新功能时, //运算符首先在 Python 2.2 中引入以实现向前兼容性。 连同通过from __future__ import division (也在 Python 2.2 中引入)启用 Python 3 行为的能力,这使您能够在 Python 2 中编写与 Python 3 兼容的代码。

你可以试试看:

In []: 5/2
Out[]: 2

In []: 5.0/2
Out[]: 2.5

In []: 5.0//2
Out[]: 2.0

这应该是不言自明的。

(这是在 Python 2.7 中。)

Python 支持两种类型的除法,浮点 (/) 和整数 (//)。

浮点数:45/2 = 22.5 整数:45//2 = 22

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM