2014-09-27 2 views
-1

Кто-нибудь знает, почему приведенный ниже код не имеет одинакового результата в Python? Зачем нужна скобка для получения правильного результата?python modulo почему 1-4% 5 не то же самое, что (1-4)% 5

#example 1 
print 1-4 %5 
outcome: -3 

#example 2 
print (1-4)%5 
outcome: 2 
+5

[Старшинство] (https://docs.python.org/2/reference/expressions.html#oper АТОР-преимущество). Также как '1 - 4 * 5' и' (1 - 4) * 5'. – grc

+0

Большое спасибо за быстрый ответ! Наверное, я не так хорош в математике :-) –

ответ

2

Это связано с operator precedence. Mod (%) имеет приоритет над -, так:

1-4 % 5 == 1 - (4 % 5) == 1 - 4 == -3 

но

(1-4) % 5 == -3 % 5 == 2 
Смежные вопросы