В чем разница между "2 * 2" и "2 ** 2" в Python? - PullRequest
51 голосов
/ 25 июня 2009

В чем разница между следующими кодами?

code1

var=2**2*3

code2:

var2=2*2*3

Я не вижу разницы. Это поднимает следующий вопрос.

Почему используется код1, если мы можем использовать код2?

Ответы [ 10 ]

119 голосов
/ 25 июня 2009

Попробуйте:

2**3*2

и

2*3*2

чтобы увидеть разницу.

** является оператором "power of". В вашей конкретной операции 2 в степени 2 дает 2 раза 2.

32 голосов
/ 25 июня 2009

Двойные звезды (**) - возведение в степень. Таким образом, «2 раза 2» и «2 в степени 2» одинаковы. Измените цифры, и вы увидите разницу.

14 голосов
/ 25 июня 2009
  2**2 means 2 squared (2^2)
  2*2 mean 2 times 2 (2x2)

В этом случае они имеют одинаковое значение, но ...

  3**3*4 != 3*3*4
4 голосов
/ 22 июля 2017

Для визуальных учеников .........................

enter image description here

4 голосов
/ 25 июня 2009

Чтобы конкретно ответить на ваш вопрос Почему используется код1, если мы можем использовать код2? Могу предположить, что программист думал в математически более широком смысле. В частности, возможно, более широкое уравнение является степенным уравнением, и тот факт, что оба первых числа равны «2», является большим совпадением, чем математическая реальность. Я хотел бы убедиться, что более широкий контекст кода поддерживает его как

var = x * x * y
во всех случаях, а не только в этом конкретном случае. Это может привести к большим неприятностям, если x - это что-то кроме 2.
2 голосов
/ 25 июня 2009

Оператор ** в Python действительно "мощный"; 2**3 = 8.

2 голосов
/ 25 июня 2009

2 ** 2 = 2 степени 2

2 * 2 = 2 раза 2

1 голос
/ 23 августа 2012

Сила имеет больший приоритет, чем умножение, поэтому:

2**2*3 = (2^2)*3
2*2*3 = 2*2*3
1 голос
/ 25 июня 2009

Двойная звездочка означает силу. Одна звездочка означает умножение на. 2 2 - это то же самое, что и 2x2, поэтому оба ответа вышли как 4.

1 голос
/ 25 июня 2009

Верхний оператор является оператором «power», поэтому в этом случае он равен 2 * 2, равен 2 степени 2 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...