2009-06-25 8 views
51

次のコードの違いは何ですか? CODE1Pythonの "2 * 2"と "2 ** 2"の違いは何ですか?

var=2**2*3 

コード2:

var2=2*2*3 

私は何の違いを見ていません。 これは次の質問を発生させます。

なぜコード2を使用できるのでしょうか?

+46

あなたは数字を用いた試験は、これらの2つの規則に従って行いますのみ2回を使用素数(あなたはOKだった)を使用し、決して。 –

答えて

114

試してみてください。

2**3*2 

2*3*2 

違いを見るために。

**は "power of"の演算子です。あなたの特定の操作では、2の累乗に2 ...

3**3*4 != 3*3*4 
+0

あなたの答えをありがとう! –

+8

http://docs.python.org/reference/expressions.html#the-power-operatorとhttp://docs.python.org/reference/expressions.html#binary-arithmetic-operationsが重要です@Masi、考慮それらを読む。 –

+0

@ S.Lott:リンクありがとうございます! –

30

二重星(**)はべき乗です。したがって、「2倍2」と「2倍2倍」は同じです。数字を変更すると違いが見えます。

+6

実際、ダブルスターは、カラット(^)がビット単位の排他的論理和演算のために予約されているどの言語でもよく使用されています。私は累乗よりも他の意味で二重星を見たことはないと思う。 –

+2

長い間、長い間FORTRANで使用されていました。 –

+3

ダブルスターは、ビット演算子シンボルを持たないFortranでパワーとして導入されました。 –

2

2 ** 2 = 2 2

2 * 2 = 2回2

2

Pythonで**オペレータが本当にある電源の "電源;"つまり、2**3 = 8です。

12
2**2 means 2 squared (2^2) 
    2*2 mean 2 times 2 (2x2) 

2と同じもたらしますが、 1つは「パワー」演算子なので、2の累乗に2が等しい2 * 2と同じです。3を中央に置くと、違いが表示されます。

1

トップ2回、彼らは同じ値を持って起こる。この場合

4

質問に具体的に回答するにはcode2を使用できるのはなぜcode1を使用するのですか?私は、プログラマが数学的に広い意味で考えていると示唆しているかもしれません。具体的には、より広範な方程式が力方程式であり、第1の数が「2」であるという事実は、数学的現実よりも偶然である。コードの幅広いコンテキストが、この特定のケースだけではなく、すべてのケースで

var = x * x * y
であることをサポートしていることを確認したいと思います。 xが2以外であれば、これは大きな問題を引き起こす可能性があります。

1

二重のアスタリスクは、の威力を意味します。単一のアスタリスクは、で乗算されたことを意味します。 2 はパワーが乗算よりも多くの優先度を持ち

1

4として、両方の答えはそう、出てきた理由である2×2と同じである:視覚的な学習者のための

2**2*3 = (2^2)*3 
2*2*3 = 2*2*3 
2

........ .................

enter image description here

関連する問題