如何设计网站导航,wordpress字数统计m 去除图片等,信阳网络营销公司,设计师网红cad图库以下代码并不报错#xff0c;而我理解在”point 1″处如果先运算小括号里面的表达式#xff0c;而y并不存在#xff0c;不应该报错吗#xff1f;难道发现x 10的短路运算优先于小括号里面的表达式运算#xff1f;将这一行中x 10改为x 100后报错了#xff0c;这个理解没…以下代码并不报错而我理解在”point 1″处如果先运算小括号里面的表达式而y并不存在不应该报错吗难道发现x 10的短路运算优先于小括号里面的表达式运算将这一行中x 10改为x 100后报错了这个理解没问题。# coding: utf-8if __name__ __main__:x 100if x 10:y 200# no y exist hereif x 10 and (y - 1 199): # point 1print ok从左到右计算括号不改变这一事实这个很正常啊, 建议看下这个帖子:python中 and 和 or 运算的核心思想 ——— 短路逻辑就你的例子来说,and前的x 10为False, 所以短路其后所有and表达式直到有or出现输出and左侧表达式到or的左侧参与接下来的逻辑运算, 然而并没有发现, 所以位于and右侧的表达式(y - 1 199)直接被无视掉, 相当于空气;如果把x 10改为x 100, 这时and左侧为True, 右侧的表达式不能短路, 要参与逻辑运算, 此时由于局部变量y并没有被创建, 所以会报错, 报错内容应该是类似这种NameError: name y is not defined1