2017-05-03 23 views
-4

내 파이썬 교과서에 따르면 인터넷에 여러 소스 (파이썬 하드 방법을 알아보기), 작업의 파이썬 순서는 다음과 같습니다 괄호 해설자 곱셈 사업부 더하기 빼기파이썬 주문 - 덧셈과 뺄셈

그래서 오는 방법

> print 1-5+4 

은 -8이 아닌 0을 반환합니까?

+6

https://en.wikipedia.org/wiki/Order_of_operations#Mnemonics "이 니모닉 (PEMDAS가) 있습니다

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 위의 규칙에 따라 다음과 같이 뭔가를 구문 분석됩니다 이런 식으로 작성하면 오해의 소지가 있습니다. [7] 특히 사용자가 곱셈과 나눗셈이 더하기와 빼기와 같은 우선 순위임을 인식하지 못하는 경우. – kennytm

답변

0

파이썬의 연산자 우선 순위 공식 테이블은 here (Python 2)이며, 대부분의 언어와 마찬가지로, 덧셈 &은 동일한 우선 순위를가집니다.

그래서 binary arithmetic operators이 정의되어 있는지 살펴보면 연산자가 왼쪽에서 오른쪽으로 적용되도록 표현식을 구문 분석한다는 것을 알 수 있습니다 (예 : 왼쪽에서 동일한 우선 순위로 작업을 그룹화합니다. - 연관성).

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