12月9日

一、集合

1.什么是集合(set)

1)集合是容器型数据类型;将{}作为容器的标志,里面多个元素用逗号隔开:{元素1,元素2,元素3·····}

2)可变的;无序的(不支持下标操作,比较大小时不会有顺序差别)

3)元素的要求:

​ a.必须是不可变类型的数据

​ b.元素是唯一的(自动去重)

#注意:空集合

s1=set()

证明是空集合:print(len(s1),type(s1)) #0<class ‘set’>

#集合无序

print({10,20,30}=={30,20,10}) #True

#元素是不可变类型的数据

S2={10,‘abc’,23.9,(1,2)}

print(s2)

#S2={10,‘abc’,23.9,[1,2]} #报错!列表是可变数据不能作为集合元素

#元素是唯一的

S4={10,20,30,10,20,10}

print(S4) #{10,20,30}

2.增删改查(了解)

1)查 — 只能遍历

s5={29,80,56,324}

for x in s5:

​ print(‘x:’,x) 顺序可能不同但是不影响

2)增

集合.add( 元素) — 将元素添加到集合中

S5.add(100)

print (S5) #{100,324,80,56,29}

3)删

集合.remove(元素) — 删除指定元素,元素不存在报错

集合.discard(元素) —删除指定元素,元素不存在不报错

S5.remove(80)

print(S5) #{100,324,56,29}

S5.discard(56)

print(S5) #{100,324,29}

#S5.discard(200)

#S5.remove(200) #报错!

4)改 — 没有改的语法,如果要改就删除旧的,添加新的

二、数学集合运算

python中集合支持的数学集合运算:并集(|),交集(&),差集(—),对称差集(^),子集(>=,<=),真子集(>,<)

1.并集(|)

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lXvxhFkm-1639055355094)(C:\Users\Administrator\Desktop\QQ图片20211209114223.png)]

2.交集(&)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1D8UVqyh-1639055355095)(C:\Users\Administrator\Desktop\QQ图片20211209114315.png)]

3.差集(—)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7PY78QIB-1639055355096)(C:\Users\Administrator\Desktop\QQ图片20211209114423.png)]

4.对称差集(^)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7ranzhBZ-1639055355100)(C:\Users\Administrator\Desktop\QQ图片20211209114503.png)]

#eg:

A={1,2,3,4,5,6,7}

B={5,6,7,8,9}

print(A|B) #{1,2,3,4,5,6,7,8,9}

print(A%B) #{5,6,7}

print(A-B) #{1,2,3,4}

print(B-A) #{8,9}

print(A^B) 两个集合合并去掉公共部分 #{1,2,3,4,8,9}

5.子集和真子集,集合中不存在大于小于

{1,2,3}的子集有:{}、{1}、{2}、{3}、{1,2}、{2,3}、{1,3}、{1,2,3}

{1,2,3}的真子集有:{}、{1}、{2}、{3}、{1,2}、{2,3}、{1,3}

#如何判断是否是集合的真子集?

print({1,2,3}>{0}) 看集合{0}是不是集合{1,2,3}的真子集 #False

print({1,2,3}>{1}) #True

#如何判断是否是集合的子集?

print({1,2,3}>={0}) 看集合{0}是不是集合{1,2,3}的子集 #False

三、认识字符串(str)

字符串是容器型数据类型:将’ ‘、" “、”" “” “”、’’ ‘’ ''作为容器的标志,里面的每一个符号就是他的一个元素。

字符串不可变;字符串有序

字符串元素:引导中的每一个符号都是字符串的元素,又叫字符。

str1=‘abc’

str2=’‘abc’’

str3=’’‘abc’’’

str4=’’’’’‘abc’’’’’’

print(type(str1),type(str2),type(str3),type(str4))

str5=‘123\nabc’

1)#单引号和双引号换行需要用以上模式

#三引号开头可以直接换行

2)字符— 字符串的元素

#普通字符:

str1=‘sdihcA’

str2=‘中文’

str4=‘123sh’

只要可以放进去的就是字符,放进去是什么东西里面就是什么

3)字符分为普通字符和转移字符两种,普通字符在字符串中表示符号本身的字符

str1=’\tabc\n123\use00’

print(str1)

​ def func():

​ ‘’’

​ 文档注释

​ ‘’’

​ pass

四、字符和字符编码

‘a’ --> 字符 ‘abc’—>字符串

1.字符 — 字符串的每个元素

#字符分为普通字符和转义字符

#1)转义字符 在特定的一些符号前加\来表示特殊功能或者特殊意义的符号

常用的转义字符:

\n — 换行(相当于按回车的功能)

\t — 水平制表符(相当于按tap键)

\ ’ — 一个普通的单引号

\ ‘’ — 一个普通的双引号

\ \ — 一个普通的反斜杠

#\u4位的16进制数 — 编码字符

#It’s ok

str1=‘’it‘s ok’‘

print(str1)

#str1=’it\‘s ok’

print(str1)

#c:\Users\test\name\wangjing\aaa.txt

path=‘c:\Users\ \test\ \name\wangjing\ \aaa.txt’

print(path)

2)R字符串 R语法

#如果在字符串的最前面加r或者R可以让字符串中所有的转义字符功能消失,每个符号都会变成普通字符

str1=R’\tabc\n123’mn’

print(str1) #\tabc\n123’mn

str2=‘abc\ u5a5f’

print(str2)

五、字符编码

1.计算机存储数据的原理

计算机只具备存储数字的能力

'abc’每一个符号关联一个固定的数字

2.字符编码

为了能够让计算机存储文字信息,给每一个符号对应了一个固定的数字,每次需要存储需要文字符号的时候,就存储这个符号对应的数字。

这个数字就是这个符号的编码值。

#‘a’+1=98

3.编码表

保存不同符号在计算机中对应的编码值的表叫做编码表

1)ASCII码表

只有128个符号(美国)

分布:数字在大写字母的前面,大写字母在小写字母的前面,大写字母和小写字母之间有间隙。

2)Unicode编码表(python)统一码,万国码

是ASCII的扩展,Unicode编码表中包含了ASCII码表。

包含了世界上所有的国家所有的民族的所有的符号,又叫万国码。

要记住中文范围:4e00~9fa5

4.python对编码值的使用

1)chr函数

chr(编码值) — 获取编码值(数字)对应的字符()

print(chr(97)) #a

print(chr(0x5e00))

#打印所有中文:

num=0

for x in range(0x4e00,0x9fa5+1):

​ print(chr(x),end=’’)

​ num+=1

​ if num%30==0

​ print()

print(num)

2)ord函数

ord(字符) —获取字符对应的编码值()

print(ord(‘汪’),ord(‘京’))

#27754 20140

3)编码字

\u4的16进制数 — 创建一个字符,字符就是4的16进制数作为编码值对应的字符

str1=’\u0061\ u4f59\ u5a77’

print(str1)

六、进制

#数字常见的表现方式有四种:二进制、八进制、十进制、十六进制

1.十进制

基数:组成这个数字的基本结构:1,2,3,4,5,6,7,8,9

表示方式:直接写

转换方法:print(其他进制的数)

print(10,123)

print(int(‘12’)) #12

print(int(‘12’,base=8)) #10(12)

print(0o12) #10

print(0x4e00) #19968

2.二进制

基数:0,1 不能出现01以外的数字

表示方式:加前缀0b、0B

转换方法:bin(其他进制的数)

print(0b1100) #12

print(12+1) #13

print(0b1100+1) #13

print(bin(12)) #0b1100

print(bin(42)) #0b101010

3.八进制

基数:0、1、2、3、4、5、6、7

表示方式:加前缀0o、0O

转换方式:oct(其他进制的数据)

#0o56-5*81+6*80=40+6=46

print(0o56) #46

4.十六进制

基数:0 1 2 3 4 5 6 7 8 9 A B C D E F

表示方式:加前缀0x、0X

转换方式:hex(其他进制的数)

print(abc) #报错

#0xabc – a162+b*161+c16^0=10* * 256+11*16+12=2748

print(0xabc) #2748

#28291是哪个字符的编码

print(chr(28291))

print(’\ u6e83’)

七.字符串作为容器的操作只有一个

因为不可变,只有一个查:查就是获取字符,与列表获取元素对应的语法一模一样的。

str1=‘abc123’

print(str[2])

print(str1[1:]) #‘bc123’

print(str[1: -1 : 2]) #‘b1’

print(str1[3:1:2]) #’ ’

for x in str1:

​ print(‘x:’,x)

#每一个有效转义字符的长度都是1

str2=’\ ta\ u4e00bc \ n123\ \ ’

print(str2[1])

print(str2[3])

str2=’\ ta\ u4e00bc \ n123\ \ ’

print(str2[2])

print(str2[9])

2.in和not in

#字符串1 in 字符串2 — 判断字符串2中是否包含字符串1(判断字符串1是否是字符串2的子串)

print('ab’in ‘abc’)

print('a’in ‘abc’)

print(str[2])

print(str1[1:]) #‘bc123’

print(str[1: -1 : 2]) #‘b1’

print(str1[3:1:2]) #’ ’

for x in str1:

​ print(‘x:’,x)

#每一个有效转义字符的长度都是1

str2=’\ ta\ u4e00bc \ n123\ \ ’

print(str2[1])

print(str2[3])

str2=’\ ta\ u4e00bc \ n123\ \ ’

print(str2[2])

print(str2[9])

2.in和not in

#字符串1 in 字符串2 — 判断字符串2中是否包含字符串1(判断字符串1是否是字符串2的子串)

print('ab’in ‘abc’)

print('a’in ‘abc’)

print('ab’in ‘abc’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值