一、总结
-
集合
-
是容器型数据类型,以{}作为容器的标志,并用逗号隔开
可变的(支持增删改);无序(不支持下标) -
集合对元素的要求:一是不可变数据,二是元素是唯一的
-
创建空集合:a = set()
-
集合的增删改查:
-
查 – 只能遍历 (补充:用for循环遍历无序序列,系统在之前前自动将无序序列转为列表)例:set1 = {‘进击的巨人’, ‘海贼王’,‘一拳超人’}
-
增 – 集合.add(元素)
集合.update(序列) – 将序列中所有元素都添加到集合中 -
删 – 集合.remove(元素)
-
-
集合运算
1)交集:& – A和B交合的公共区域
2)并集:| – A和B的所有
3)差集:- – A-B或者B-A的结果
4)对称差集:^ – A和B的非交合区域的集合
5)子集:>=、<= – A集合内所有元素,也包括A本身
6)真子集:>、< – 不包括A集合本身外其他的元素集合
-
-
字符串
-
概念:
- 是容器型数据类型,以2个单双引号或者3个单双引号作为标志,引号内每一个符号都是元素(也叫字符)
- 不可变(不支持增删改)、有序的(支持下标)
- 字符串的元素:一切符号都可以作为字符串的元素
- 字符分为:普通字符 和 转义字符
-
字符
-
普通字符 – 打印出字符本身的就是普通字符
-
转义字符 – 具有特殊功能和意义的符号就是转义字符,通用格式:\X、\XXX
-
\n – 表示换行
-
\t – 水平制表符,相当于按了一次TAB,缩进4个空格
-
’ – 表示一个单引号( print(‘I say:‘你好,世界’’) )
-
" – 表示一个双引号( 同上一样的,在有歧义符号前加\ ,用于表示符号本身)
-
\ – 表示一个反斜杠
-
\ u 4位的16进制数 – 表示编码字符
-
r – 取消转义
(注意:所有的转义字符的长度都是1)
-
-
字符编码 – 每个文字符号在计算机都对应一个固定的数字,这个数字就是这个符号的编码值
-
字符编码表
- ASCII码表:只有128个字符、0-9(48-57)、A-Z(65-90)、a-z(97-122)
- Unicode编码表:也叫万国码,中文编码范围:0x4e00 - 0x9fa5
-
编码值在python的应用
-
chr(编码值) – 根据编码值获取对应的字符(编码值为整数)
-
ord(字符) – 根据字符获取对应的编码值(字符:长度为1的字符串)
-
在程序中药直接表示一个16进制数,直接在前面加: 0x/0X
-
hex(数字) – 将数字转换为16进制数
-
-
-
-
字符串的相关操作
1. +、* -- 合并新的字符串和重复字符串N次 2. <、>、>=、<= -- 比较大小,两个字符串比较的是编码表,取第一个进行比较 3. in 和 not in: 字符串1 in 字符串2 -- 判断字符串1是否在字符串2中,即判断字符串1是否为2的子串,字符必须挨着,否在判断为假
二、作业
-
输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)
str1 = input('请任意输入一个字符串:') print(str1[1::2])
-
输入用户名,判断用户名是否合法(用户名长度6~10位)
str2 = input('请任意输入一个字符串:') for i in str2: if 6 <= len(str2) <= 10: print('用户名合法') break else: print('不合法')
-
输入用户名,判断用户名是否合法(用户名中只能由数字和字母组成)
str3 = input('请任意输入一个字符串:') for i in str3: if not ('a' <= i <= 'z' or 'A' <= i <= 'Z' or '0' <= i <= '9'): print('不合法') break else: print('合法')
-
输入用户名,判断用户名是否合法(用户名必须包含且只能包含数字和字母,并且第一个字符必须是大写字母)
-
输入一个字符串,将字符串中所有的数字字符取出来产生一个新的字符串
str5 = input('请输入一个字符串:') new_str = '' for i in str5: if '0' <= i <= '9': new_str += i print(new_str)
-
输入一个字符串,将字符串中所有的小写字母变成对应的大写字母输出 (用upper方法和自己写算法两种方式实现)
str6 = input('请输入一个字符串:') a = str6.upper() print(a)
-
输入一个小于1000的数字,产生对应的学号
num1 = 'py1901' str7 = input('请任意输入一个数字(1000以内):') if 0 < int(str7) <= 9: a1 = '00' + str7 print(num1 + a1) elif 10 < int(str7) <= 99: a2 = '0' + str7 print(num1 + a2) else: print(num1 + str7)
-
输入一个字符串,统计字符串中非数字字母的字符的个数
str8 = input('请输入一个字符串:') count = 0 for i in str8: if not ('A' < i < 'Z' or '0' <= i <= '9' or 'a' <= i <= 'z'): count += 1 print(count)
-
输入字符串,将字符串的开头和结尾变成’+’,产生一个新的字符串
str9 = input('请任意输入一个字符串:') new_str9 = str9[1:-1] print('+' + new_str9 + '+')
-
输入字符串,获取字符串的中间字符
str10 = input('请任意输入一个字符串:') if len(str10) % 2 != 0: a = len(str10) // 2 print(str10[a]) else: a = len(str10) // 2 print(str10[a - 1] + str10[a])
-
写程序实现字符串函数find/index的功能(获取字符串1中字符串2第一次出现的位置)
-
获取两个字符串中公共的字符
str12 = input('请输入一个字符串:') str13 = input('请输入一个字符串:') new_str = '' for i in str12: if i in str13: new_str += i print(new_str)