04:布尔表达式
本章大綱
布爾類型
布爾表達(dá)式
布爾操作符
01:布爾說明
python布爾常用變量是 True 和False來表示,注意大小寫;
運(yùn)算符 <>== 等返回的類型就是bool類型;
布爾類型通常在if 和while語句中應(yīng)用
02:布爾類型(bool)
真假 對錯
只有兩種取值
True (真,對)
False(假,錯)
03:關(guān)系運(yùn)算符(> < == !=)
①數(shù)值比較:
print(3!=1) # True
'== 表示值/內(nèi)容相等
是否同一個對象?-----用id()---is
舉例:c = 257 d =257
c is d False
②字符串比較
print('abc' > 'b') 字符串比較:對應(yīng)位置的字符的ascii值大小 a=97 A=65
③in -----在。。。里面
1、前者是后者的一個元素
2、前者是后者的連續(xù)一段
str = 'abcd'
print('a' in str) True
in ---列表
1、前者是后者的一個元素
alist = 【10,20,30,【100,200】】
print(10 in alist)
print(10,20 in alist) False
04:條件組合
①且---and
一假為假,全真為真
第一個條件為真,第二個條件一定執(zhí)行
print(3>1 and 2==1)
② 或--or
一真為真,全假為假
第一個條件為真,后面條件不執(zhí)行
def func():
print('我執(zhí)行了')
print(3>1 or func()) # True
③ not 取反
優(yōu)先級:not>and>or
not 1 > 2 or 4>3 False
05:引申
python的賦值,深拷貝和淺拷貝的區(qū)別
①賦值---指向,引用操作
alist = [10,20,30]
blist = alist
print(id(alist))
print(id(alist))
blist,append(40)
alist=[10,20,30,40]
blist=[10,20,30,40]
②淺拷貝--拷貝的不夠徹底
1,可以拷貝出父級列表--這個父級列表跟源數(shù)據(jù)不是同一個
2,子列表是同一個對象
import copy #模塊
alist = [10,20,30,[100,200]]
blist = copy.copy(alist)
blist,append(40)
alist=[10,20,30,[100,200],40]
blist=[10,20,30,[100,200],40]
③深拷貝--很深的拷貝--徹底的拷貝
內(nèi)外層列表都獨(dú)立,不是同一個對象
import copy #模塊
alist = [10,20,30,[100,200]]
blist = copy.deepcopy(alist)
blist,append(40)
alist=[10,20,30,[100,200]]
blist=[10,20,30,[100,200],40]
06:練習(xí)題
1、一個變量a定義如下 a = ['this', 'test', 4.56, ['inner', 'list']] 下面的表達(dá)式結(jié)果為False的有()
A.'this' in a
B. 'test' in a
C. 't' in a
D.'inner' in a
答案是D
2、下面表達(dá)式結(jié)果為False的有
A.(2 >1 or 3> 4) and 5> 4
B. 2 > 1 or (3>4 and 5> 4)
C.1> 2 or (3>4 and 5>4 )
D.(1>2 or 3> 4 ) and 5> 4
答案是CD
判斷:
1、和算術(shù)表達(dá)式一樣,我們可以用括號,來提升布爾表達(dá)式的運(yùn)算優(yōu)先級
正確
2、比較(英文)字符串的大小,是根據(jù)ASCII碼的大小來決定的,ASCII大的認(rèn)為值是大的
正確
3、if 語句成立后面要執(zhí)行的代碼塊,縮進(jìn)必須是4個空格
錯誤
4、下面的代碼,解釋器運(yùn)行時,如果條件1未True,后面條件2條件3解釋器都不會執(zhí)行做判斷
正確
5、下面的兩種代碼寫法,執(zhí)行效果是相同的
正確
6、下面的代碼一,和代碼二是等價的
正確
總結(jié)
- 上一篇: 又一波你可能不知道的 Linux 命令行
- 下一篇: FLT3/ITD 介绍