В чем разница между "2*2" и "2**2" в Python?


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

code1:

var=2**2*3

code2:

var2=2*2*3

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

почему используется code1, если мы можем использовать code2?

10 51

10 ответов:

попробуй:

2**3*2

и

2*3*2

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

** оператор для "силы". В вашей конкретной операции, 2 в степени 2 дает то же самое, что 2 умножить на 2.

двойные звезды (**) это возведение в степень. Так что "2 раза 2" и "2 к силе 2" - это одно и то же. Менять цифры и вы увидите разницу.

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

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

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

чтобы конкретно ответить на ваш вопрос почему используется code1, если мы можем использовать code2? я мог бы предположить, что программист думал в математически более широком смысле. В частности, возможно, более широкое уравнение является степенным уравнением, и тот факт, что оба первых числа являются "2", является скорее совпадением, чем математической реальностью. Я хотел бы убедиться, что более широкий контекст кода поддерживает его

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

для визуалов.........................

enter image description here

2 * * 2 = 2 Мощность-2

2*2 = 2 раза 2

The ** оператор в Python-это действительно "сила", то есть, 2**3 = 8.

верхний-это оператор "power", поэтому в этом случае он такой же, как 2 * 2, равный 2 степени 2. Если вы поставите 3 в среднее положение, вы увидите разницу.

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

мощность имеет больше приоритета, чем умножить, так что:

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