Два слеша в 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

Другие вопросы по тегам