day 7 课程总结
集合(set)
1.集合是容器型数据类型,将{}作为容器的标志 {数据1,数据2,数据3,···}
2.可变的(支持增删改查);无序(不支持下标操作)
要求:
- 必须是不可变的数据类型
- 元素是唯一的
空集合:set1 = set()
增删改查:
查:
只能遍历
添加:
集合.add() 添加指定元素
集合.updata() 将序列中所有元素添加到集合中
删除:
集合.remove
数学集合运算
交集:&
并集:|
差集:-
对称差集:^ ((a-b)|(b-a))
子集:>=、<=
真子集:>、<
字符串(str)
容器型数据类型,将’’、""、’’’’’’、""""""作为容器标志(每一个符号叫做字符)
不可变(不支持增删改,只能查),有序(支持下标操作)
元素:一切符号都可以作为元素,每一个元素符号叫做字符,分为普通字符,转义字符
空字符串: str1 = ‘’
字符:
普通字符: 在字符串中表示本身的字符
转义字符: 具备特殊意义的符号 (格式:\ + 部分字符)
(\n): 换行
(\t): 水平制表符(一个Tab键)
(’): 单引号
("): 双引号
(\): 反斜杠
\u4位的十六进制数 编码字符
字符编码
每个文字符号(字符)在计算机中都对应一个固定的数字,这个数字就是这个符号的编码值。
常用编码表: ASCII码表、Unicode编码表(Python)
1.ASCII码表
ASCII码表只有128个字符(不够用)
在ASCII码表中:数字字符在字母的前面、大写字母在小写字母的前面、大 写字母和小写字母之间有间隙、
数字从0开始连续递增,字母从(a/A)开始连续递增
a - 97
A - 65
2.Unicode编码表 - 是ASCII码表的扩展,里面包含ASCII码表
Unicode编码表中包含了世界上所有的国家所有的民族的所有符号(万国码)
中文编码范围:4e00 ~ 9fa5
程序中直接表示一个16进制数: 加前缀0x/0X
for x in range(0x1800, 0x18AF+1):
print(chr(x), end=' ')
hex(数字) - 将数字转换成16进制
print(ord('余'), ord('婷'), ord('a'))
print(hex(20313), hex(23159))
编码字符
str1 = 'a\u0061一\u4e00'
print(str1)
判断指定的字符是否是中文字符
ch = '是'
print('\u4e00' <= ch <= '\u9fa5')
print(chr(0x9fa5))
字符操作
-
查操作:字符串获取字符和列表获取元素的语法一模一样
str1 = 'hello world!' print(str1[1], str1[-1]) str2 = '\t123\u5fa3abc' print(str2[5]) str1 = 'hello world!' print(str1[-3:]) # 'ld!' print(str1[-5::-1]) # 'ow olleh' for x in str1: print(x)
-
+、*:
str1 = 'abc' str2 = '123' print(str1 + str2) # 'abc123' print(str1 * 3) # 'abcabcabc'
-
比较大小: >、<、>=、<=
两个字符串比较大小,比较的是第一对不相等的字符的编码值大小;
应用:判断字符的性质
- 判断字符x是否是数字字符: ‘0’ <= x <= ‘9’
- 判断字符x是否是小写字母: ‘a’ <= x <= ‘z’
- 判断字符x是否是大写字母: ‘A’ <= x <= ‘Z’
- 判断字符x是否是字母:‘a’ <= x <= ‘z’ or ‘A’ <= x <= ‘Z’
- 判断字符x是否是中文:’\u4e00’ <= x <= ‘\u9fa5’
-
in 和 not in
字符串1 in 字符串2 - 判断字符串1是在字符串2中(判断字符串1是否是字符串2的子串)
str1 = 'abc123' print('a' in str1) print('abc' in str1) print('23' in str1) print('13' in str1)