涉及逻辑运算的python表达式的运算顺序
高洛峰
高洛峰 2017-04-18 09:31:29
0
3
408

以下代码并不报错,而我理解在"point 1"处如果先运算小括号里面的表达式,而y并不存在,不应该报错吗?难道发现x == 10的短路运算优先于小括号里面的表达式运算?

将这一行中x == 10改为x == 100后报错了,这个理解没问题。

# coding: utf-8

if __name__ == "__main__":
    x = 100
    if x == 10:
        y = 200
    # no y exist here
    if x == 10 and (y - 1 == 199):    # point 1
        print "ok"
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(3)
伊谢尔伦

왼쪽에서 오른쪽으로 계산

괄호는 이 사실을 바꾸지 않습니다

左手右手慢动作

다음 게시물을 읽어보는 것이 좋습니다.

파이썬의 and 및 or 연산의 핵심 아이디어 ——— 단락 논리

예제에서 and 앞의 x == 10False이므로 and가 나타날 때까지 모든 후속 or 표현식은 단락되고 and 왼쪽의 표현식이 출력됩니다. to or의 왼쪽은 다음 논리 연산에 참여하지만 찾지 못하므로 and의 오른쪽의 (y - 1 == 199) 표현식은 그대로 무시됩니다. 이는 air

와 동일합니다.

x == 10x == 100으로 바꾸면 and의 왼쪽은 True이 되고 오른쪽의 표현식은 단락할 수 없으며 이때 논리연산에 참여해야 합니다. , 로컬 변수 y가 생성되지 않았으므로 오류가 보고됩니다. 오류 내용은

과 유사해야 합니다. 으아악
巴扎黑

1!!!!!!!!!!!!!!!!!!!!!!!!!

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿