2017-05-03 18 views
-4

は私のPythonの教科書によると、インターネット上のいくつかのソース(Pythonのハード・ウェイはこちら)、オペレーションのPythonの順序は次のとおりです。 括弧指数精度乗算除算加算減算Pythonの秩序 - 加算と減算

そう来ますか

> print 1-5+4 

は-8を返します。

+6

https://en.wikipedia.org/wiki/Order_of_operations#Mnemonics「これらのニーモニック(PEMDAS)5月このように書くと誤解を招きます。[7]特に、乗算と除算が加減算と同じ優先順位であることをユーザーが意識していない場合。 – kennytm

答えて

0

Pythonの演算子優先順位の公式テーブルはhere (Python 2)であり、ほとんどの言語と同様に、さらに&減算の優先順位は同じです。

したがって、演算子が左から右に適用されるように式を解析することがわかります(つまり、左から同じ優先順位で演算をグループ化します-associativity)を使用する。

m_expr ::= u_expr | m_expr "*" u_expr | m_expr "//" u_expr | m_expr "/" u_expr 
      | m_expr "%" u_expr 
a_expr ::= m_expr | a_expr "+" m_expr | a_expr "-" m_expr 

だからあなたの表現1-5+4は、上記の規則に従って、このようなもの解析されます:

 1 - 5  + 4 
=  a_expr  + m_expr 
=(a_expr - m_expr) + m_expr 
=(m_expr - m_expr) + m_expr