2013-01-21 12 views
32

natknąłem tej próbki kodu z radix sort:dwa ukośniki w Pythonie

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

Co oznacza „//” zrobić w Pythonie?

+0

Możliwy duplikat [Co składnia "// zmienna = wartość" oznacza w Pythonie?] (Http://stackoverflow.com/questions/40274205/what -zawiera zmienną-wartość-składnia-średnia-w-python) – smci

Odpowiedz

41

// jest operatorem podziału piętra. Wytwarza podłogę ilorazu swoich operandów, bez operacji zaokrąglania dla liczb całkowitych. Jest to czasami określane jako dzielenie całkowite, nawet jeśli można go używać z zmiennymi, ponieważ dzielenie liczb całkowitych z / używane jest do tego domyślnie.

W języku Python 3 zwykły operator dzielenia / zwraca wartości zmiennoprzecinkowe, nawet jeśli oba operandy są liczbami całkowitymi, więc do podziału piętra potrzebny jest inny operator. Różni się to od Pythona 2, w którym / wykonał podział piętra, jeśli oba operandy były liczbami całkowitymi i zmiennoprzecinkowymi, jeśli przynajmniej jeden z operandów był wartością zmiennoprzecinkową.

Operator // został po raz pierwszy wprowadzony w celu zapewnienia zgodności z wersją w Pythonie 2.2, gdy zdecydowano, że Python 3 powinien mieć tę nową zdolność. Wraz ze zdolnością do umożliwienia zachowania Python 3 przez from __future__ import division (wprowadzony również w Pythonie 2.2), co umożliwia pisanie kodu Pythona 3-kompatybilnego w Pythonie 2.

+0

Aby dodać do komentarza przez @DSM - '//' oznacza również podział całkowity w python2.x. Jeśli chcesz robić podział całkowity, powinieneś używać '//' zamiast '/' niezależnie od wersji na pythonie, której używasz. – mgilson

+1

To zaokrągla w kierunku minus nieskończoności (tj. Podłoga współczynnika). W przypadku liczb ujemnych różni się on od liczby całkowitej w C, która zaokrągla się w kierunku zera. http://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html –

4

Można tylko próbować go:

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

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

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

To powinno być oczywiste.

(To jest w Pythonie 2.7.)

+4

-1: Jednym ze sposobów rozwiązania problemu jest próba i błąd. Innym jest pytanie. – DilithiumMatrix

+0

Jednym ze sposobów udzielenia odpowiedzi na pytanie jest udzielenie bezpośredniej odpowiedzi, innym jest wskazanie kierunku. Zrobiłem zarówno BTW. – LWZ

+0

Po prostu próbuję ci wyjaśnić sprawę i trochę informacji zwrotnych. Opierając się na -1 dla twojej odpowiedzi, a +13 dla zaakceptowanego ... Myślę, że wiele osób zgadza się, że tak naprawdę nie zrobiłeś. (bezpośredni lub kierunek). – DilithiumMatrix

Powiązane problemy