2013-01-21 11 views
32

にスラッシュ:二つの前方には、私が<a href="http://en.wikipedia.org/wiki/Radix_sort#Example_in_Python">radix sort</a>からこのコードのサンプルに出会ったのPython

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

//」は、Pythonで何をしますか?

+0

可能な重複[ "変数// =値" 構文はPythonでどういう意味?](http://stackoverflow.com/questions/40274205/what -does-the-variable-a-value-syntax-in-python) – smci

答えて

41

//は床分割演算子です。整数オペランドの浮動小数点の丸めを行わずに、そのオペランドの商の階数を生成します。浮動小数点数で使用することもできますが、これは整数の除算と呼ばれることもあります。これは、デフォルトで/という整数を使用していたためです。

普通の/除算演算子は、両方のオペランドが整数であっても浮動小数点値を返します。したがって、床分割には別の演算子が必要です。これはPython 2と異なります。/は、両方のオペランドが整数であった場合にフロア分割が行われ、少なくとも1つのオペランドが浮動小数点値であった場合は浮動小数点除算が行われます。

//演算子は、Python 3でこの新しい能力が必要と判断されたときに、Python 2.2で前方互換性のために初めて導入されました。一緒に(また、Pythonの2.2で導入された)from __future__ import division経由のPython 3の動作を有効にする機能で、これはあなたがPythonでPythonの3互換のコードを書くことができます2.

+0

@DSMによるコメントに追加するには - '//'はpython2.xの整数除算も意味します。整数除算をしたいのであれば、使用しているPythonのバージョンに関係なく、 '/'の代わりに '/'を使うべきです。 – mgilson

+1

マイナスの無限大(すなわち、比率の床)に向かって丸くなります。負の数の場合は、Cの整数除算とは異なり、ゼロに向かって丸めます。 http://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html –

4

あなたはそれを試すことができます。

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

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

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

これは自明です。

(これは、Python 2.7である。)の

+4

-1:何かを理解する方法の1つは試行錯誤です。もう一つは尋ねることです。 – DilithiumMatrix

+0

質問に答える1つの方法は、直接的な答えを与えることであり、もう1つは指す方向であることです。私は両方を行った。 – LWZ

+0

私はちょうどdownvoteといくつかのフィードバック男の説明をしようとしています。あなたの答えは-1、受け入れられたものは+13に基づいています...私は多くの人があなたが実際にどちらもしなかったことに同意すると思います。 (方向または方向)。 – DilithiumMatrix

関連する問題

 関連する問題