返回顶部
首页 > 资讯 > 后端开发 > Python >Python中True(真)和False(假)判断详解
  • 687
分享到

Python中True(真)和False(假)判断详解

2024-04-02 19:04:59 687人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录前言1.True和False的逻辑取反2.if条件语句中的True和False3.pandas.DataFrame.loc 中的否定总结前言 python中的 True和 Fal

前言

python中的 True和 False总是让人困惑,一不小心就会用错,本文总结了三个易错点,分别是逻辑取反、if条件式和pandas.DataFrame.loc切片中的条件式。

1.True和False的逻辑取反

在对True和False进行逻辑取反时,不使用~,而要使用not。

因为在Python中,not才是逻辑取反,而~是按位取反。True和False对应的数值是1和0,~True就相当于对1按位取反,结果是-2,not True的结果才是False。

print(True)
print(~True)
print(not True)

结果是:

True
-2
False

类似的,~False的结果是1,not False 的结果才是True

print(False)
print(~False)
print(not False)

结果是:

False
-1
True

注:Python中 ~ 按位取反是按照数的补码取反,即:

1 => 补码00000001 => ~按位取反 => 补码11111110 => 2

双重否定的结果是这样的

print(not not True)
print(~~True)
print(not ~True)
print(~(not True))

结果为:

True
1
False
-1

对False的双重否定

print(not not False)
print(~~False)
print(not ~False)
print(~(not False))

结果为:

False
0
False
-2

2.if条件语句中的True和False

Python语言中,if后任何非0和非空(null)值为True,0或者null为False。这点和其他语言不相同,使用多种编程语言时很容易混淆。所以即使判断条件是一个负数,也是按照True处理,不会执行else分支。来看例子:

if (-2):
    print('a')
else:
    print('b')

结果为:a

如果使用了~对True或False取反,则得不到想要的结果:

if (~True): # ~True == -2
    print('a')
else:
    print('b')

结果为:a

只有用not来取反,才能达到逻辑取反的效果:

if not True:
    print('a')
else:
    print('b')

结果为:b

3.pandas.DataFrame.loc 中的否定

pandas.DataFrame.loc 官方文档中是这么说的
Access a group of rows and columns by label(s) or a boolean array.
可以使用布尔列表作为输入,包括使用一个条件式来返回一个布尔列表,例:

首先创建一个DataFrame

import pandas as pd
 
df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
    index=['cobra', 'viper', 'sidewinder'],
    columns=['max_speed', 'shield'])
 
df

使用条件式来筛选出shield大于6的数据

df.loc[df['shield'] > 6]

​筛选出shield域小于等于6的数据,可以

df.loc[df['shield'] <= 6]

也可以用

~ df.loc[~(df['shield'] > 6)]

另一个例子,筛选出index中不包含er两个字母的数据

df.loc[~df.index.str.contains('er')]

需要注意的是,在这里使用df.index.str.contains('er')作为条件筛选时,返回的是pd.Series。

而在pd.Series中, ~操作符重载了,它对布尔类型数据和对数值类型数据的处理分别是逻辑取反和按位取反。

df.index.str.contains('er')

的结果是:

array([False, True, True])

对布尔类型的pd.Series使用~取反,是逻辑取反

~pd.Series([False, True, False])

结果为

True
False
True
dtype: bool

而如果对数值型的pd.Series使用~取反,则是按位取反

~pd.Series([1,2,3])

结果为

-2
-3
-4
dtype: int64

总结

到此这篇关于Python中True(真)和False(假)判断的文章就介绍到这了,更多相关Python True和False详解内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python中True(真)和False(假)判断详解

本文链接: https://lsjlt.com/news/119075.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中True(真)和False(假)判断详解
    目录前言1.True和False的逻辑取反2.if条件语句中的True和False3.pandas.DataFrame.loc 中的否定总结前言 Python中的 True和 Fal...
    99+
    2024-04-02
  • Python中True和False如何判断
    这篇文章主要讲解了“Python中True和False如何判断”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中True和False如何判断”吧!1.True和False的逻辑取反...
    99+
    2023-07-02
  • Python解惑之True和False详解
    前言 众所周知在Python 中常用的数据类型bool(布尔)类型的实例对象(值)就两个,真和假,分别用True和False表示。在if 条件判断和while 语句中经常用到,不过在Python2.x 中,...
    99+
    2022-06-04
    详解 Python True
  • java判断true和false的方法是什么
    在Java中,判断true和false的方法是使用布尔运算符。 下面是几种常见的判断true和false的方法: 使用比较运算符(...
    99+
    2023-10-25
    java
  • 详谈python中subprocess shell=False与shell=True的区别
    shell=True参数会让subprocess.call接受字符串类型的变量作为命令,并调用shell去执行这个字符串,当shell=False是,subprocess.call只...
    99+
    2024-04-02
  • Python if 判断语句详解
    目录1. 流程控制2. 顺序结构3. 分支结构3.1 条件3.2 代码块3.3 if 判断语句3.4 else 语句3.4 if 嵌套3.5 elif 语句4. 练习4.1 猜数字游...
    99+
    2024-04-02
  • Python中怎么支持任意的真值判断
    Python中怎么支持任意的真值判断,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python 在涉及真值判断(Truth Value Testing)时,语法...
    99+
    2023-06-16
  • Python实现日期判断和加减操作详解
    python实现日期判断和加减操作 #==================================================== #时间相关 #============...
    99+
    2024-04-02
  • 详解python进行mp3格式判断
    项目中使用mp3格式进行音效播放,遇到一个mp3文件在程序中死活播不出声音,最后发现它是wav格式的文件,却以mp3结尾。要对资源进行mp3格式判断,那么如何判断呢,用.mp3后缀肯定不靠谱,得从编码格式判...
    99+
    2022-06-04
    详解 格式 python
  • 使用el-checkbox-group选中后值为true和false遇到的坑怎么解决
    这篇文章主要讲解了“使用el-checkbox-group选中后值为true和false遇到的坑怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“使用el-checkbox-group选...
    99+
    2023-07-02
  • 关于Python中Inf与Nan的判断问题详解
    大家都知道 在Python 中可以用如下方式表示正负无穷: float("inf") # 正无穷 float("-inf") # 负无穷 利用 inf(infinite) 乘以 0 会得到 not-a...
    99+
    2022-06-04
    详解 Python Inf
  • Python的数据类型与标识符和判断语句详解
    目录Python中的数据类型共有六个,分别是:1.列表和字典的区别:2.列表和元祖的区别:3.列表和集合的区别:4.字典和集合的区别:Python的常用标识符Python中的关键字语...
    99+
    2024-04-02
  • JAVA熔断和降级真实关系的图文详解
    目录降级熔断什么是服务熔断熔断和降级的关系降级方式总结刚开始我以为熔断和降级是一体的,以为他们必须配合使用; 只不过名字不一样而已,但是当我经过思考过后,发现他们其实不是一个东西; ...
    99+
    2024-04-02
  • 详解在JavaScript中如何判断变量类型
    JavaScript是一个动态类型语言,在运行时获取变量类型是常用操作,由于JavaScript设计的问题,看似简单的问题,在JavaScript中可能并不简单,比如在社区中流传的下...
    99+
    2024-04-02
  • Python基本结构之判断语句的用法详解
    目录逻辑控制数字逻辑条件条件控制if - 用法 if - else 用法 if 嵌套 练习题→猜数字小游戏说明 逻辑控制 逻辑控制其...
    99+
    2024-04-02
  • java中判断是否是闰年的方法详解
    给定一个年份,判断是否是闰年。条件为:(推荐:java视频教程)A:能被4整除,并且不能被100整除。或者B:能被400整除。分析:首先题目中的A与B为两个判断闰年为真的选项,且属于“非A则B”的情况,在这里往往很容易想到如下结构来解决此问...
    99+
    2019-04-13
    java基础 java
  • Android中判断网络是否连接实例详解
    Android中判断网络是否连接实例详解 在android中,如何监测网络的状态呢,这个有的时候也是十分重要的,方法如下: public class ConnectionDe...
    99+
    2022-06-06
    连接 Android
  • Java中判断Integer是否为null的详细解析
    简介 在java编写过程中,我们会使用到各种各样的表达式,在使用表达式的过程中,有哪些安全问题需要我们注意的呢?一起来看看吧。 来看看小编挑选的这本书对你是否有用: 注意表达式的返回值 我们在使用JD...
    99+
    2023-09-02
    java servlet 开发语言
  • 详解python os.path.exists判断文件或文件夹是否存在
    在Python中,`os.path.exists(path)`函数用于判断指定的文件或文件夹是否存在。它接受一个路径参数`path`...
    99+
    2023-08-14
    Python
  • Java中判断对象是否为空的方法详解
    在Java编程中,经常会遇到判断对象是否为空的情况。空指针异常是常见的程序错误之一,因此在编码过程中,判断对象是否为空是一个重要的防御措施。本篇博客将深入探讨Java中判断对象是否为空的不同方法,...
    99+
    2023-09-01
    java python 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作