首先根据你的问题,先实际运行一下代码,如下:
通过代码结果,我们看到两者都是True,所以是相等的
为什么相等呢?此处涉及到运算优先级的问题
1、首先比较容易理解的是当x是空字符串,也就是什么都没有的时候,系统是判定为False,只要变量有值就会判断为True,不管值是什么,而not x是False的对立面,所以结果为True
2、【not x!=''】这个表达式的结果也为True,为什么呢?
我们会看到这个表达式中的运算符比较多,首先是not,其次是【!=】,从运算符的优先级上看,【!=】是大于not的,也就是先要运行【!=】,再来运行not,你说为什么?没有为什么,这就是系统设定的原则
先看x!='',x是空字符,判断x不等于空字符,结果肯定是False
因为上面的结果是False,所以 not False就是True
综上,这样梳理下来,你就会明白,为什么两者是一样的了
那如果x不是空字符串,结果会是什么呢?
即使x不是空字符串,两者的结果也是一样的,只是同时为True或者同时为False的差别
以上,希望能解答你的问题,祝学习愉快,谢谢