a * a // b не работает должным образом в Python (// Оператор) - PullRequest
0 голосов
/ 30 января 2020

Оператор python / / является целочисленным делением.

Но в случае a * a // b он работает как a * a / b ..

a = 10
b = 3
a * a//b
>> 33

a//b * a
>> 30

temp = a//b
a * temp
>> 30

Почему это происходит ??

Ответы [ 2 ]

3 голосов
/ 30 января 2020

Вы, вероятно, хотели написать a * (a//b). Умножение происходит перед делением, так как оно слева и имеет тот же приоритет.

0 голосов
/ 30 января 2020

Порядок операций одинаков в обоих случаях, но неявная целочисленная операция усечения происходит в разных частях двух операторов.

В первом случае в конце вы усекаете целое число во втором случае вы делаете это в начале. В результате вы получите разные ответы.

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