Две косые черты в Python

я наткнулся на этот пример кода из radix сортировать:

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

Что значит '// сделать в Python?

2 ответов


// оператор разделения пола. Он создает пол частного его операндов, без округления с плавающей запятой для целочисленных операндов. Это также иногда называют целочисленным делением, хотя вы можете использовать его с поплавками, потому что деление целых чисел с / используется для этого по умолчанию.

в Python 3, обычный / оператор деления возвращает значения с плавающей запятой, даже если оба операнда являются целыми числами, поэтому для напольное отделение. Это отличается от Python 2, где / выполняется деление пола, если оба операнда являются целыми числами, и деление с плавающей запятой, если хотя бы один из операндов является значением с плавающей запятой.

на // оператор был впервые представлен для прямой совместимости в Python 2.2, когда было решено, что Python 3 должен иметь эту новую способность. Вместе с возможностью включить поведение Python 3 через from __future__ import division (также представлен в Python 2.2), это позволяет вам напишите Python 3-совместимый код в Python 2.


вы можете просто попробовать это:

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

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

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

Это должно быть самоочевидным.

(это в Python 2.7.)