2016-11-20 2 views
2

저는 초보자 프로그래머가 아니며 부울이 무엇인지와이를 사용하는 방법을 알고 있습니다.Python의 부울 연산 (문서의 표기법)

or_test ::= and_test | or_test "or" and_test 
and_test ::= not_test | and_test "and" not_test 
not_test ::= comparison | "not" not_test 

이 모든 재귀 무엇을 의미 하는가 : 문제는, 나는 꽤 부울 작업에 대한 파이썬의 문서에 무엇을 암시 이해할 수있다? or_test 안에 "and_test"가 있어야하는 이유는 무엇입니까? and_test의 설명에서 "not_test"에 관해 동일한 질문이 있습니다. 세 번째 줄은 나에게 덜 의미가 있습니다. 나는 마침내이 다소 불필요하게 순환과 얽힌 표기

답변

2

language grammar 큰의 일부이며 본질적으로 operator precedence를 지정 이해할 수 있도록 는 사람이 라인을 통해 나를 안내 시겠어요.

즉, andor보다 엄격하게 바인딩됩니다. and을 포함이없는 or_test가 않습니다, 그것은 중 하나not_test 규칙 또는 and_test "and" not_test로 구성되어 and_test규칙가 포함되어 있습니다. not_test 그 자체도 유사한 방식으로 구성됩니다.

참고 문서의 Notation section도 참조하십시오.

+0

이 EBNF 표기법이 실제로 부울 연산의 구문을 나타내지 않고 파이썬의 인터프리터가 구문 내부에서 표현식을 평가하는 순서를 올바르게 표시합니까? –

+1

글쎄, 둘 다 * 않습니다. AND 부울 연산의 구문은 예를 들어'and' 철자입니다. 표현 문법 규칙은 일반적으로 매우 간단합니다. 이를 [복합 문] (https://docs.python.org/3/reference/compound_stmts.html)에 대한 규칙과 비교하십시오. –

+0

감사합니다, Martijn! 당신은 많은 도움이되었습니다. –