布尔值

True    真

False    假

所有的数据类型都自带布尔值,数据只有在0,None和空的时候为False。

print(bool())
print(bool())
print(bool(''))
print(bool(' '))
print(bool(0))
print(bool(None)) 输出结果
False
False
False
True
False
False

not、or和and优先级

优先级由高到低:not>>and>>or

例1:先计算and,后计算or----->True and False为False,False or False为False,结果输出no

if True and False or False:
print('yes')
else:
print('no') 输出结果
no

例2:先计算and,后计算or------->False and False为False,True and False为True,输出yes

if True or False and False:
print('yes')
else:
print('no') 输出结果
yes

例3:先计算not,后计算and,最后计算or------>not True为False,False and False为False,False or False为False,输出no

if not True and False or False:
print('yes')
else:
print('no') 输出结果
no

例4:先计算not False为True,再计算False and True为False,最后计算True or False为True,输出yes

if True or False and not False:
print('yes')
else:
print('no') 输出结果
yes

集合

集合是进行关系运算的,能够去除重复元素,而元素只能是不可变类型,另外,集合和字典一样,是无序的。

创建集合

s1={1,2,2,3,4}
print(s1,type(s1))
s2=set('apple')
print(s2,type(s2))
s3=set(['apple','apple','pear'])
print(s3,type(s3))
s4=set(('apple','apple','pear'))
print(s4,type(s4))
s5=set({'apple':'苹果','pear':'梨'})
print(s5,type(s5)) 输出结果:(顺序可能不一样)
{1, 2, 3, 4} <class 'set'>
{'a', 'p', 'l', 'e'} <class 'set'>
{'pear', 'apple'} <class 'set'>
{'pear', 'apple'} <class 'set'>
{'pear', 'apple'} <class 'set'>

创建空集合

s=set()
print(type(s))

交集

s={1,2,'c',4,5}
d={1,'a','b',4,5} print(s.intersection(d))

print(s & d) 输出结果:
{1, 4, 5}

并集

s={1,2,'c',4,5}
d={1,'a','b',4,5}
print(s.union(d))

print(s | d) 输出结果:
{'b', 1, 2, 4, 5, 'a', 'c'}

差集

s={1,2,'c',4,5}
d={1,'a','b',4,5}
print(s.difference(d))

print(s - d) 输出结果
{'c', 2}

对称差集

s={1,2,'c',4,5}
d={1,'a','b',4,5}
print(s.symmetric_difference(d))

print(s ^ d) 输出结果:
{'b', 2, 'a', 'c'}

清空集合内元素

s={1,2,'c',4,5}
s.clear()
print(s) 输出结果
set()

求差集并赋值

s={1,2,'c',4,5}
d={1,'a','b',4,5}
s.difference_update(d) 输出结果
{2, 'c'}

更新

s1={'a',1}
s2={'a','b',3,1}
s1.update(s2)
print(s1) 输出结果
{1, 3, 'a', 'b'}

添加

s1={'a',1}
s1.add(3)
s1.add('a')
print(s1) 输出结果
{1, 3, 'a'}

删除

s1={'a',1}
s1.discard('a') #当没有该元素时候不报错
#s1.remove('aa') #当没有aa元素时候会报错
#s1.pop() #随机删除
print(s1) 输出结果:
{1}

判断

s1={'a',1}
s2={'a','b',3,1}
print(s1.issubset(s2)) #判断s1是否是s2的子集,如果s1等于s2那么互为子集
print(s2.issuperset(s1)) #判断s2是否是s1的超集
print(s1.isdisjoint(s2)) #判断有没有集合,如果没有返回True 输出结果
True
True
False

循环

for i in s2:
print(i) 输出结果(无序)
l
e
a
p

Python开发基础-Day4-布尔运算、集合的更多相关文章

  1. python开发基础04-函数、递归、匿名函数、高阶函数、装饰器

    匿名函数 lamba lambda x,y,z=1:x+y+z 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函 ...

  2. 还在用Alpine作为你Docker的Python开发基础镜像?其实Ubuntu更好一点

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_173 一般情况下,当你想为你的Python开发环境选择一个基础镜像时,大多数人都会选择Alpine,为什么?因为它太小了,仅仅只有 ...

  3. python开发基础03-列表、元组、字典、集合操作方法汇总

    列表 创建列表: li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], ...

  4. python开发学习-day03(set集合、collection系列 、深浅拷贝、函数)

    s12-20160116-day03 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  5. Python开发基础-Day31 Event对象、队列和多进程基础

    Event对象 用于线程间通信,即程序中的其一个线程需要通过判断某个线程的状态来确定自己下一步的操作,就用到了event对象 event对象默认为假(Flase),即遇到event对象在等待就阻塞线程 ...

  6. Python 函数基础、有序集合、文件操作(三)

    一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...

  7. python开发基础之语法基础

    一.知识点 (一)python介绍 1.Python被设计成一种高可读性的语言,它大量地使用了英语单词作为关键字,不像其他语言使用标点符号构成复杂的语法结构. 2.Pyton是支持面向对象的,支持在对 ...

  8. Python开发基础-Day23try异常处理、socket套接字基础1

    异常处理 错误 程序里的错误一般分为两种: 1.语法错误,这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 2.逻辑错误,人为造成的错误,如数据类型错误.调用方法错误等,这些解 ...

  9. Python开发基础-Day18继承派生、组合、接口和抽象类

    类的继承与派生 经典类和新式类 在python3中,所有类默认继承object,但凡是继承了object类的子类,以及该子类的子类,都称为新式类(在python3中所有的类都是新式类) 没有继承obj ...

随机推荐

  1. resultAPI示例

    什么是Restfull API Restfull API 从字面就可以知道,他是rest式的接口,所以就要先了解什么是rest rest 不是一个技术,也不是一个协议 rest 指的是一组架构约束条件 ...

  2. TOJ 1049 Jesse's problem (最短路 floyd)

    描述 All one knows Jesse live in the city , but he must come to Xiasha twice in a week. The road is to ...

  3. css3动画总结

  4. 网页实现插入图片—css与html的区别

    Q1.二者有何区别?A1.写在css里面的图片是以背景图形式存在的,而写在html里的是以<img>标签形式存在的,在网页加载的过程中,以css背景图存在的图片会等到结构加载完成(网页的内 ...

  5. ie8下trim失效

    1.ie8下使用trim失效 trim可以除去字符串两侧的空白字符,但ie8并不支持 2.解决方案 String.prototype.trim = function () { return this ...

  6. 【转】debian下的update-rc.d的使用

    在Linux系统下,一个Services的启动.停止以及重启通常是通过/etc/init.d目录下的脚本来控制的.然而,在启动或改变运行级别时, 是在/etc/rcX.d中来搜索脚本.其中X是运行级别 ...

  7. Django rest framework 的认证流程(源码分析)

    一.基本流程举例: urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^users/', views.HostView.as_view() ...

  8. io多路复用-select()

    参照<Unix网络编程>相关章节内容,实现了一个简单的单线程IO多路复用服务器与客户端. 普通迭代服务器,由于执行recvfrom则会发生阻塞,直到客户端发送数据并正确接收后才能够返回,一 ...

  9. OPENSOLARIS source

    http://blog.csdn.net/nemo2011/article/details/8543220 http://fxr.watson.org/fxr/source/?v=OPENSOLARI ...

  10. MVC使用Newtonsoft无需实体类,实现JSON数据返回给前端页面使用

    //引用using Newtonsoft.Json; using Newtonsoft.Json.Linq; public ActionResult JsonSample() { ResponseRe ...