2.24-字符串与集合

本文介绍了Python中的字符串和集合特性,包括集合的可变性和无序性,以及字符串作为容器型数据类型的特点。讨论了字符串和集合的增删改查、数学运算,同时提供了多个字符串和集合操作的练习示例,如奇数位字符提取、用户名合法性判断、大小写转换等实际应用场景。
摘要由CSDN通过智能技术生成

字符串与集合

集合
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. 输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)

    例如: 输入’abcd1234 ’ 输出’bd24’

    方法1:
    s = 'abcd1234'
    str1=''
    for m,n in enumerate(s):
        if m%
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值