集合&字符串
集合
'''
集合是容器型数据类型;将{}作为容器的标志,里面多个元素用逗号隔开:{元素1,元素2, ...}
可变的,无序
元素的要求:
a.必须是不可变的类型的数据
b.元素是唯一的 (自动去重)
'''
# 空集合
s1 = set()
print(type(s1)) # <class 'set'>
# 集合无序
print({10,20,30} == {30,20,10}) #True
# 元素是不可变类型的数据
s2 = {10, 'abc', 23.4, (1,2)}
# 元素是唯一的
s4 = {10, 20, 10 , 30, 20}
print(s4) # {10,20,30}
增删改查
'''
查 - 只能遍历
for i in 集合:
pass
'''
s5 = {29,80,56,324}
for x in s5:
print(x,end=' ') # 29 80 56 324
# 增
# 集合.add(元素) - 将元素添加到集合中
S5.add(100)
print(s5) # 29 80 56 324 100
# 删
# 集合.remove(元素) - 删除指定元素,元素不存在报错
# 集合.discard(元素) - 删除指定元素,元素不存在不报错
# 改 - 不能改,没有改的语法,如果要改先删再添加
数学集合运算
'''
python中的集合支持的数学集合运算:并集(|),交集(&),差集(-),对称差集(^),子集(>=,<=),真子集(>,<)
并集(|)
集合A | 集合B - 将两个集合合并,产生一个新的集合
交集(&)
集合A & 集合B - 将两个集合的公共部分,产生一个新的集合
差集(-)
集合A - 集合B - 获取集合A中没有包含在集合B的元素,产生一个新的集合
集合B - 集合A - 获取集合B中没有包含在集合A的数据,产生一个新的集合
对称差集(^)
集合A ^ 集合B - 将两个集合合并去掉公共部分,产生一个新的集合
子集(>=,<=)
集合A >= 集合B - 判断集合A是否是集合B的子集
集合B >= 集合A - 判断集合B是否是集合A的子集
真子集(>,<)
集合A >= 集合B - 判断集合A是否是集合B的真子集
集合B >= 集合A - 判断集合B是否是集合A的真子集
'''
A={1,2,3,4,5,6,7}
B={5,6,7,8,9}
# A|B
print(A|B) # {1,2,3,4,5,6,7,8,9}
# A&B
print(A|B) # {5,6,7}
# A-B
print(A-B) # {1,2,3,4}
# B-A
print(B-A) # {8,9}
# A^B
print(A^B) # {1,2,3,4,8,9}
A={1,2,3}
B={1,2}
print(A>B) # True
print(A<B) # False
print(A>B) # False
print(A>=B) # True
字符串
'''
字符串是容器型数据类型;将'',"","""""",''''''作为容器的标志,里面的每一个符号就是它的一个元素
字符串不可变; 字符串有序
字符串元素:引号中的每一个符号都是字符串的元素,又叫字符。
字符分为普通字符和转义字符两种:
普通字符 - 在字符串中表示符号本身的字符
三引号开头的字符串,字符串内容可以直接换行
'''
str1 = '❀'
print(str1) # ❀
转义字符
'''
转义字符 - 在特定的一些符号前
python中常用的转义字符:
\n 表示: 换行(相当于按回车)
\t 表示: 水平制表符(相当于按Tab键)
\\ 表示: \(一个普通的反斜杠)
\' 表示: '(一个普通的单引号)
\" 表示: "(一个普通的双引号)
\u四位的16进制数 表示: 编码字符
编码字符:创建一个字符,字符就是4个16进制数作为编码值对应的字符
R 语法:
如果在字符串的最前面加r或R可以让字符串中所有的转义字符功能消失, 每个字符都会变成普通字符
'''
编码
'''
1.计算机存储数据的原理
计算机只具备存储数字的能力
2.字符编码
为了能够让计算机存储文字信息,给每一个符号对应了一个固定的数字,每次需要存储文字符号的时候就存储这个符号对应的数字。这个数字就是这个符号编码值。
3.编码表 - 保存不同字符对应的编码值的表;python中使用的是Unicode编码表
1) ASCII码表
有128个符号(美国符号)
{48 : 0} {65 : A} {97 : a}
2) Unicode编码表 (统一码)
Unicode编码表中包含了ASCII码表
Unicode包含了世界上所有的国家所有的民族的所有符号,又叫万国码
中文范围: 4e00 ~ 9fa5
'''
python对编码值的使用
'''
python对编码值的使用
1.chr函数(十进制数)
chr(编码值) - 获取编码值对应的字符
2.ord函数(返回的是十进制数)
ord('字符') - 获取字符对应的编码符
'''
# chr() 当需要使用16进制数时在前面加0x
print(chr(97)) # a
print(chr(0x4e00)) # 一
# ord()
print('马') # 39532
进制
'''
进制:二进制,八进制,十进制,十六进制
二进制
表示方法: 加前缀0b,0B
转换方式:bin(其它进制的数据)
基数:0和1
八进制
表示方法: 加前缀0o,0O
基数:0到7
转换方式:oct(其它进制的数据)
十进制
基数:0到9
十六进制
表示方法: 加前缀0x,0X
基数:0到9 和 A(a)到F(f)
转换方式:hex(其它进制的数据)
'''
字符串不可变,所以只支持查操作
# 1.查 - 获取字符
# 字符串获取字符和列表获取元素对应的语法一模一样的
# 每一个有效转义字符长度都是1
in 和 not in
# 字符串1 in 字符串2 - 判断字符串2中是否包含字符串2(判断字符串1是否是字符串2的子串)
print('a' in 'abc') # True
print('ab' in 'abc') # True
print('ab' in 'acb') # False
in 和 not in
# 字符串1 in 字符串2 - 判断字符串2中是否包含字符串2(判断字符串1是否是字符串2的子串)
print('a' in 'abc') # True
print('ab' in 'abc') # True
print('ab' in 'acb') # False