<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Python中的 True和 False總是讓人困惑,一不小心就會用錯,本文總結了三個易錯點,分別是邏輯取反、if條件式和pandas.DataFrame.loc切片中的條件式。
在對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
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
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詳解內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45