04:布尔表达式

本章大纲

布尔类型

布尔表达式

布尔操作符

01:布尔说明

python布尔常用变量是 True 和False来表示,注意大小写;

运算符 <>== 等返回的类型就是bool类型;

布尔类型通常在if 和while语句中应用

02:布尔类型(bool)

  • 真假 对错
  • 只有两种取值
  • True (真,对)
  • False(假,错)

03:关系运算符(> < == !=)

①数值比较:

print(3!=1) # True

'== 表示值/内容相等

是否同一个对象?-----用id()---is

举例:c = 257 d =257

c is d False

 

②字符串比较

print('abc' > 'b') 字符串比较:对应位置的字符的ascii值大小 a=97 A=65

 

③in -----在。。。里面

1、前者是后者的一个元素

2、前者是后者的连续一段

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

一假为假,全真为真

第一个条件为真,第二个条件一定执行

 

print(3>1 and 2==1)

 

② 或--or

一真为真,全假为假

第一个条件为真,后面条件不执行

def func():
print('我执行了')

print(3>1 or func()) # True

 

③ not 取反

优先级:not>and>or

not 1 > 2 or 4>3 False

 

05:引申

python的赋值,深拷贝和浅拷贝的区别

 

①赋值---指向,引用操作

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,可以拷贝出父级列表--这个父级列表跟源数据不是同一个

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]

 

 

③深拷贝--很深的拷贝--彻底的拷贝

内外层列表都独立,不是同一个对象

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:练习题

1、一个变量a定义如下 a = ['this', 'test', 4.56, ['inner', 'list']] 下面的表达式结果为False的有()

A.'this' in a

B. 'test' in a

C. 't' in a

D.'inner' in a

答案是D

2、下面表达式结果为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、和算术表达式一样,我们可以用括号,来提升布尔表达式的运算优先级

正确

2、比较(英文)字符串的大小,是根据ASCII码的大小来决定的,ASCII大的认为值是大的

正确

3、if 语句成立后面要执行的代码块,缩进必须是4个空格

错误

4、下面的代码,解释器运行时,如果条件1未True,后面条件2条件3解释器都不会执行做判断

image.png

正确

5、下面的两种代码写法,执行效果是相同的

image.png

正确

6、下面的代码一,和代码二是等价的

image.png

正确

 

posted @ 2020-07-29 10:14  kelly-凯莉  阅读(872)  评论(0编辑  收藏  举报