布尔值

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. PowerDesigner逆向工程

    再用PD建表完成后导成SQL脚本然后在SQL Server中运行后生成数据库后,就想到,可不可以将直接将数据库的内容生成PD文档?经过上网查,当然可以的. 要将SQL Server中的数据库导入到PD ...

  2. 【BZOJ】3779 重组病毒

    [算法]Link-Cut Tree+线段树(维护DFS序) [题解]整整三天……T_T 这篇题解比较资瓷:permui 这道题虽然树形态没有变化,但用lct写的原因在于把题目中的操作一进行了神转化:每 ...

  3. vue双向数据绑定的原理-object.defineProperty() 用法

    有关双向数据绑定的原理 关于数据双向绑定的理解:利用了 Object.defineProperty() 这个方法重新给对象定义了新属性,在操作新属性分别为为获取属性值(调用get方法)和设置属性值(调 ...

  4. 通用套接字选项和TCP套接字选项

    1. 套接字选项函数原型: #include <sys/socket.h> int getsockopt(int sockfd, int level, int optname, void ...

  5. 2017多校第7场 HDU 6129 Just do it 找规律

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6129 题意:求a序列后m次xor前缀和 解法: 手动对1位置对每个位置的贡献打表发现 第一次 贡献为 ...

  6. C后端设计开发 - 第2章-内功-数据结构上卷

    正文 第2章-内功-数据结构上卷 后记 如果有错误, 欢迎指正. 有好的补充, 和疑问欢迎交流, 一块提高. 在此谢谢大家了.

  7. Makefile系列之一 : 书写规则

    1. 规则 target : prerequisites command  2. example excute 为最终生成的可执行文件. 可以通过命令 make clean来删除所有编译时产生的中间文 ...

  8. 重写Alert

    var isIE = navigator.appName.indexOf("Internet Explorer") != -1;var oldAlert = window.aler ...

  9. [New learn]SDWebImage框架的基本使用

    代码:https://github.com/xufeng79x/SDWebImage 1.简介 SDWebImage是一个第三方框架,它能够帮助我们有效管理应用图片下载,沙盒保存和内存保存的任务.通过 ...

  10. string与int的相互转换以及把一个字符加入到string的末尾

    #include "stdafx.h" #include<sstream> #include<string> #include<iostream> ...