Два слеша в Python
Я наткнулся на этот пример кода из сортировки по основанию:
def getDigit(num, base, digit_num):
# pulls the selected digit
return (num // base ** digit_num) % base
Что это '//
делать в Python?
3 ответа
//
является оператором подразделения пола. Он производит дно частного своих операндов без округления с плавающей точкой для целых операндов. Это также иногда называют целочисленным делением, даже если вы можете использовать его с плавающей точкой, потому что деление целых чисел с /
используется для этого по умолчанию.
В 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.)
Python3 поддерживает два типа деления: с плавающей запятой (/) и целочисленное (//).
Плавающая точка: 45/2 = 22,5
Целое число: 45//2 = 22