Python中的True和False
在Python中,if条件语句中的True和False非常重要,不同使用方法会带来不同的结果。逻辑取反、if条件式和pandas.DataFrame.loc切片中的条件式都有可能出现易错点,下面将一一进行详细解答。

True和False的逻辑取反
Python中的取反操作需要注意,~是按位取反,而not才是逻辑取反。对True和False进行逻辑取反时,需要使用not,因为~是按位取反。此外,not not True 和~~True 都表示对True进行双重否定,结果是True。
if条件语句中的True和False
在Python中,if后任何非0和非空(null)值为True,0或者null为False。即使判断条件是一个负数,也是按照True处理,不会执行else分支。但如果使用~对True或False取反,则得不到想要的结果,只有用not来取反,才能达到逻辑取反的效果。
举例来说,if(-2)中的-2被视为True,因此会执行if分支语句;而if(~True)中的~True将True取反得到-2,仍然被视为True,也会执行if分支语句。只有在if not True:语句中,not将True取反得到False,才执行else分支语句。
pandas.DataFrame.loc中的否定
pandas.DataFrame.loc中的条件式需要注意,使用筛选条件时,可以用>和<=进行筛选,也可以用~进行逻辑取反。但需要注意,在pd.Series中,~操作符重载了,它对布尔类型数据和对数值类型数据的处理分别是逻辑取反和按位取反。比如对pd.Series([False,True,False])使用~取反,则结果为True False True。
在条件筛选时,注意返回的数据类型是pd.Series,需要根据具体情况使用逻辑取反或按位取反。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7177.html
