首页 > 代码库 > Day3:数据类型(布尔值、集合)

Day3:数据类型(布尔值、集合)

一、布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有TrueFalse两种值,要么是True,要么是False,在Python中,可以直接用TrueFalse表示布尔值(请注意大小写),也可以通过布尔运算计算出来:

>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 3 > 5
False

布尔值可以用andornot运算。

and运算是与运算,只有所有都为Trueand运算结果才是True

>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> 5 > 3 and 3 > 1
True

or运算是或运算,只要其中有一个为Trueor运算结果就是True

>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> 5 > 3 or 1 > 3
True

not运算是非运算,它是一个单目运算符,把True变成FalseFalse变成True

>>> not True
False
>>> not False
True
>>> not 1 > 2
True

布尔值经常用在条件判断中,比如:

if age >= 18:
    print(‘adult‘)
else:
    print(‘teenager‘)

所有的数据类型自带布尔值,只有0,None,空的布尔值为False

二、集合

定义集合:
集合内的元素必须是唯一的;
集合内的元素必须是可hash的,也是就不可变类型;
集合是无序的。

集合的作用一:关系运算;
集合的作用二:去重。

1、集合的创建

 {1,2,3,1}

定义可变集合set

>>> set_test=set(‘hello‘)
>>> set_test
{‘l‘, ‘o‘, ‘e‘, ‘h‘}

改为不可变集合frozenset

>>> f_set_test=frozenset(set_test)
>>> f_set_test
frozenset({‘l‘, ‘e‘, ‘h‘, ‘o‘})

2、集合的常用操作:关系运算

python_s={‘egon‘,‘alex‘,‘钢蛋‘,‘老王‘}

linux_s={‘alex‘,‘钢蛋‘,‘欧德博爱‘,‘艾里科四‘}

python_s  &  linux_s  交集

python_s | linux_s   并集

取只报名了python课程的学生:差集

python_s - linux_s

取只报名了linux课程的学生:差集

linux_s - python_s

取没有同时报名python和linux课程的学:对称差集

linux_s ^ python_s

 python_s.intersection(linux_s)  交集

python_s.union(linux_s)     并集

python_s.difference(linux_s))       差集#python_s-linux_s

python_s.symmetric_difference(linux_s)     对称差集,python_s ^ linux_s

python_s.difference_update(linux_s)      将linux_s的值更新到python_s的几个集合中

.add()      给集合添加元素

.remove()    删除集合中的元素,无元素会报错

.discard()     删除集合中的元素,不报错

.issubset()   判断是否是子集

.issuperset()  判断是否是父集

.isdisjoint()    判断是否有交集,没有交集返回True

Day3:数据类型(布尔值、集合)