字符串与集合
集合
1.认识集合 - 容器型数据类型
将{}作为容器标志里面多个数据用逗号隔开:{数据1,数据2...}
特点:可变性,无序性
print({1,2,3}=={2,3,1}) #True
set1={1, 'abc', True, (10,28)}
print(set1) #True
元素的要求:1.必须是不可变的数据 2.元素是唯一的
set2={1,'abc','True',[10,20]} #报错
set3={10,25,24,10,4}
print(set3) #{24, 25, 10, 4}
空集合:set1=set()
set1=set()
print(type(set1),len(set1))
2.增删改查
1)查 - 只能遍历
用for循环遍历无序序列的时候,系统在遍历之前会自动将无序序列转换为列表
set1={'a', 'g', 'q', 'w', 'u'}
print(list(set1))
for x in set1:
print(x)
2)增 -
集合.add(元素) - 添加一个元素
集合.update(序列) - 添加序列中的所有元素到集合中
set1={'a', 'g', 'q', 'w', 'u'}
set1.add('诡神')
print(set1)
set2=[1,2,36,3]
set1.update(set2)
print(set1)
3)删
集合.remove(元素)
set1={'a', 'g', 'q', 'w', 'u'}
set1.remove('w')
print(set1)
4)不可直接修改
3.集合的数学运算 a={1,2,3} b={3,4,5}
python中使用的集合和数学集合是一个东西,并且支持数学集合运算
交集:a&b={3}
并集: a|b={1,2,3,4,5}
差集: a-b={1,2} b-a={4,5}
对称差集:a^b={1,2,4,5}
子集:{>=,<=}
真子集:{>,<}
字符串
1.认识字符串 - 容器型数据类型;保存的数据都会转换为字符数据
''、""、''''''、""""""作为容器标志,引号里面的每一个字符都是字符串的元素
不可变性;有序性
字符:一切符号,
空串:str=''
2.字符 - 字符串中的每个独立符号
字符分为:普通字符和转义字符
1)普通字符 - 表示符号本身的字符
2)转义字符 - 具备特殊功能或者特殊意义的符号。所有转义字符的通用格式:\X、\XXXX
(转义字符是通过'\'加普通字符构成的,但不是所有的普通字符前加、都可以变成转义字符)
所有转义字符的长度为1
\n - 换行
\t - 水平制表(相当于按一次tab)
\' - 一个单引号
\" - 一个双引号
\\ - 表示一个\
\u 4位的16进制数 - 编码字符;必须跟4位数,每位上一定0-9或者是a-f的数
3.字符编码
1.计算机存储数据的原理
计算机能够直接存储的数据只有数字,存储数字时保存数组的补码。
如果想要将非数字数据保存到计算机中,存储的时候一定会先将数据转换成数字。
如果需要存储的是文字,计算机会保存这个文字符号对应的编码值。
2.编码值
每个文字符号(字符)在计算机中都对应一个固定的数字。这个数字就是这个符号的编码值
3.字符编码表 - 记录每个符号和数字对应关系的表
常用编码表:ASCII码表、Unicode编码表(Python)
1)ASCII表
只有128个字符(不够用)
在表中:数字在大写字母前,大写字母在小写字母前,中间都有符号间隔间隔
数字从0开始连续递增,字母从(a/A)开始连续递增
a-97
A-65
0-48
2)Unicode编码表(统一码) - 是ASCII码表的扩展,里面包含ASCII码
表中包含了世界上所有国家所有民族的所有符号
基础中文编码范围:4e00 ~ 9fa5
4.编码值在python中的应用
1)chr函数:chr(编码值) - 根据编码值获取对应字符
print(chr(97)) #a
2)ord函数:ord(字符) - 根据字符获取对应编码值
print(ord('A')) #65
3)hex(数字) - 将数字转换成16进制
4) 编码字符
*程序中直接表示一个16进制数:加前缀0x/0X
字符串相应操作
1.查 - 获取字符
字符串获取字符和列表获取元素的语言一样
str1='hello world!'
print(str1[1], str1[-1])
str2='\t123\u5fq3abc'
print(str2[5])
2.字符串相关操作
1)+、*
str1='abc'
str2='123'
print(str1+str2) #'abc123'
print(str1*3) #'abcabcabc'
2)比较:>、<、>=、<=
比较两个字符串第一段不相等的编码值的大小
print('abc'>'mn') #False
print('abc'<'Mn') #True
3).in 和 not in
字符串1 in 字符串2 - 判断字符串1是在字符串2中(判断字符串1是否是字符串2的子串)
应用:判断字符的性质
a:判断字符x是否是小写字母:'0'<=x<='9'
b:判断字符x是否是大写字母:'a'<=x<='z'
c:判断字符x是否是数字字符:'A'<=x<='Z'
e:判断字符x是否是中文: ’\u4e00'<=x<='\u9fa5'
字符串与集合练习:
-
输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)
例如: 输入’abcd1234 ’ 输出’bd24’
方法1: s = 'abcd1234' str1='' for m,n in enumerate(s): if m%