2015-09-03 3 views
0

С визуальной точки зрения разница в (0 - 32) * 5/9 и (0 - 32) * (5/9) - это только скобки, но я получаю -18 для одного и 0 для других.Почему скобка создает другой ответ?

+1

https://docs.python.org/2/reference/expressions.html#binary-arithmetic-operations – njzk2

+0

Я не уверен, что смущает вас порядок операций или целочисленное деление – njzk2

+0

В Python 3 оба выражения дадут вам то же значение. – Matthias

ответ

5

Его сочетание того факта, что в python без импорта разделов (см. Ниже) разделение двух целых чисел всегда усекается до целого числа и порядка операций.

(0 - 32) * 5/9

0 - 32 = -32 
-32 * 5 = -160 
-160/9 = - 18 

(0 - 32) * (5/9)

0 - 32 = - 32 
5/9 = 0 
- 32 * 0 = 0 

вы должны поставить from __future__ import division , поверх вашего файла python , то деления не являются целыми делениями.

Смежные вопросы