day 9

本文详细介绍了Python中的集合和字符串。集合是无序且可变的数据类型,支持增删改查操作,以及数学集合运算如并集、交集、差集等。字符串是有序不可变的数据类型,包含转义字符和字符编码的概念,支持字符查找等操作。此外,文章还探讨了字符编码和Unicode在Python中的应用。
摘要由CSDN通过智能技术生成

day 9 集合和字符串

1.集合

1.2什么是集合(set)
  • 1)集合是容器型数据类型;将{}作为容器标志,里面多个元素用逗号隔开:{元素1,元素2,元素3,…}

  • 2)可变的;无序

  • 3)元素的要求:
    a.必须是不可变的数据
    b.元素是唯一的(自动去重)

1.1空集合
s1 = set()
print(len(s1), type(s1))  # 0 <class 'set'>
#无序
print({10, 20, 30} == {30, 10, 20})  # True

#元素是不可变的数据
s2 = {10, 20, 'abc', (10, 20)}
print(s2)  # {'abc', 10, 20, (10, 20)}

# s2 = {10, 20, 'abc', [10, 20]}  # 报错,列表是可变的数据

#  元素是唯一的
s4 = {10, 20, 30, 10, 30, 50}
print(s4)  # {10, 20, 50, 30}

增删改查
  • 1)查——只能遍历
s5 = {10, 20, 50, 80, 90}
for x in s5:
    print(x, end=' ')  # 80 50 20 90 10
  • 2)增
#  集合.add(元素)——将元素添加到集合中
print()
s5.add(100)
print(s5)  # {80, 50, 20, 90, 100, 10}
  • 3)删
    • 集合.remove(元素)——删除指定元素,元素不存在报错
    • 集合.discard(元素)——删除指定元素,元素不存在不会报错
s5.remove(50)
print(s5)  # {80, 20, 90, 100, 10}
  • 4)改——没有改的语法,如果要改就先删除旧的再添加新的

2、数学集合运算

python中的集合支持的数学集合运算,并集(|)、交集(&)、差集(-)、对称差集(^)、子集(>=、<=)、真子集(>、<)

2.1并集(|)
  • 集合1 | 集合2 ——将两个集合合并产生一个新的集合
print(A | B)  # {1, 2, 3, 4, 5, 6, 7, 8, 9}
2.2交集(&)
  • 集合1&集合2——获取两个集合公共部分产生一个新的集合
print(A & B)  # {8, 5, 6, 7}
2.3 差集(-)
  • 集合1-集合2 ——获取集合1中没有包含在集合2中的元素,得到一个新的集合
  • 集合2-集合1 ——获取集合2中没有包含在集合1中的元素,得到一个新的集合
print(A - B)  # {1, 2, 3, 4}
print(B - A)  # 9
2.4 对称差集(^)
  • 集合1 ^集合2——两个集合合并去掉公共部分
print(A ^ B)  # {1, 2, 3, 4, 9}
2.5子集(>=、<=)、真子集(>、<)
  • 看小的是不是大的的子集(真子集)
print({1, 2, 3} > {1, 2})  # True
print({1, 2, 3, 4} < {1, 2, 3, 4, 5})  # True
print({1, 2, 3, 4} > {1, 2, 3, 4, 5})  # False

3.认识字符串

3.1什么是字符串(str)
  • 字符串是容器型数据类型;将’’、""、""""""、’’’’’'作为容器的标志,里面的每一个符号就是他的元素
  • 字符串不可变;字符串有序
  • 字符串元素:引号中的每一个符号都是字符串的元素,又叫字符
  • 字符分为普通字符和转义字符两种:
    • 普通字符——在字符串中表示本身的
    • 转义字符
str1 = 'abc'
str2 = "abc"
str3 = '''abc'''
str4 = """abc"""
print(type(str1), type(str2), type(str3), type(str4))  # <class 'str'> <class 'str'> <class 'str'> <class 'str'>

4.转义字符

4.1、字符——字符串的每个元素
4.1.1 字符分为普通字符和转义字符
  • 1)转义字符——在特定的一些符号前加\来表示特殊功能或者特殊意义的符号
  • 常用的转义字符:
    \n —— 换行(相当于按回车)
    \t ——水平制表符(相当于按tab键)
    " ——一个普通的双引号
    ’ ——一个普通的单引号
    \ ——一个普通的反斜杠
    \u 4位的16进制数——编码字符
#  表示it's ok
print('\tabc\n123')
str1 = "it's ok"
print(str1)  # it's ok

str1 = 'it\'s ok'
print(str1)  # it's ok

# 表示:I say: "good good study,day day up!"
str2 = "I say: \"good good study,day day up!\" "
print(str2)  # I say: "good good study,day day up!"

#  表示C:\用户\test\name\zx\aaa.txt
path = 'C:\用户\\test\\name\zx\\aaa.txt'
print(path)  # C:\用户\test\name\zx\aaa.txt
4.1.2 R语法
  • 如果在字符串的最前面加R或者r,可以让字符串中所有的转义字符都消失,每个符号都会变成普通字符
str1 = r'\table\n123\'a'
print(str1)  # \table\n123\'a

5.字符编码

5.1 计算机存储数据的原理
  • 计算机只具备存储数字的能力
5.2字符编码
  • 为了能够让计算机存储文字信息,给每一个符号对应了一个固定的数字,每次需要存储文字符号的时候,就存储这个符号对应的数字。
    这个数字就是这个符号的编码值
5.3 编码表——保存不同字符对应的编码值的表
5.3.1 ASCII码表
  • 有128个美国符号
  • 数字——大写字母——小写字母大小写字母之间有间隙
5.3.2 Unicode编码表(python)
  • Unicode编码表中包含了ASCII码
  • Unicode编码表中包含了世界上所有的国家所有的民族的所有的符号,又叫万国码
  • 中文范围:4e00~9fa5
5.4 python对编码值的使用
5.4.1 chr函数
  • chr(编码值)——获取数字对应的字符

print(chr(97))  # a
print(chr(0x4e00))  # 一
5.4.2 ord函数
  • ord(字符)
5.4.3编码字符
  • \u 4位的16进制数——创建一个字符,字符就是4位的16进制数作为编码值对应的字符

6 字符串作为容器的操作

  • 字符串不可变,所以只支持查操作
6.1查——获取字符
  • 字符串获取字符串和列表获取元素对应的语法一模一样
str1 = 'abc123'
print(str1[2], str1[4])  # c 2
print(str1[1:])  # bc123
print(str1[1:-1:2])  # b1
for x in str1:
    print(x, end=' ')  # a b c 1 2 3
    


str2 = '\ta\nmn'
# 获取a
print(str2[1])
str2 = r'\ta\nmn'
print(str2[2])
6.2 in 和not in
  • 字符串1 in 字符串2——判断字符串2中是否包含字符串1(判断字符串1是否是字符串2的子串)
print('ab' in 'abc')  # True
print('a' in 'abc')  # True
print('ac' in 'abc')  # False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值