Python中“2 * 2”和“2 ** 2”之间有什么区别?

时间:2009-06-25 16:23:17

标签: python syntax

以下代码有什么区别?

CODE1

var=2**2*3

码2:

var2=2*2*3

我认为没有区别。 这提出了以下问题。

如果我们可以使用code2,为什么会使用code1?

10 个答案:

答案 0 :(得分:118)

尝试:

2**3*2

2*3*2

看到差异。

**是“权力”的运营商。在你的特定操作中,2到2的幂会产生相同的2次2。

答案 1 :(得分:32)

双星(**)是取幂。所以“2次2”和“2次2次”是相同的。更改数字,你会看到差异。

答案 2 :(得分:14)

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

在这种情况下,它们碰巧具有相同的值,但是......

  3**3*4 != 3*3*4

答案 3 :(得分:4)

专门回答你的问题如果我们可以使用code2,为什么使用code1?我可能会建议程序员在数学上更广泛地思考。具体而言,也许更广泛的等式是幂方程,并且两个第一个数都是“2”的事实比数学现实更重合。在所有情况下,我都希望确保代码的更广泛的上下文支持

var = x * x * y
,而不是仅仅在这个特定的情况下。如果x不是2,那么这可能会让你遇到大麻烦。

答案 4 :(得分:4)

对于视觉学习者.........................

enter image description here

答案 5 :(得分:2)

2 ** 2 = 2次幂2

2 * 2 = 2次2

答案 6 :(得分:2)

Python中的**运算符实际上是“强大的”;也就是2**3 = 8

答案 7 :(得分:1)

最上面的一个是“电源”操作符,所以在这种情况下它是相同的2 * 2等于2是2的幂。如果你把3放在中间位置,你会看到一个区别

答案 8 :(得分:1)

双星号意味着力量。单个星号表示乘以。 2 2 与2x2相同,这就是为什么两个答案都是4的原因。

答案 9 :(得分:1)

权力优先于乘法,所以:

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