day09-字符串

day09-字符串

1.数学集合运算

a.求交集(&)

求两个集合公共的部分

A = {1, 2, 3, 4, 5, 6}
B = {4, 5, 6, 7, 8}
print(A & B)  # 4,5,6

b.求并集(|)

将两个集合合并成一个集合

print(A | B)  # 1,2,3,4,5,6,7,8

c.求差集(-)

去掉一个集合中被包含在另外一个集合中的部分剩下的部分

print(A - B)  # 1,2,3
print(B - A)  # 8,7

d.求对称差集(^)

合并俩个集合后去掉公共的部分

print(A ^ B)  # 1,2,3,7,8

e.子集(>=,<=)和真子集(>,<)

A>B-判断B是否是A的真子集
A<B-判断A是否是B的真子集
A>=B-判断B是否是A的子集
A<=B-判断A是否是B的子集

math = {'小红', '小黄', '小兰', '小白', '小明', '阿花'}
english = {'小黄', '小兰', '小白', '阿飞', '阿黄', '小七'}
chinese = {'小红', '小白', '小七', '小罗', '大黄', '小胡'}
# a. 求选课学生总共有多少人
a = math | english | chinese
print(len(a))
# b. 求只选了第一个学科的人的数量和对应的名字
b = math - english - chinese
print(len(b), b)
# c. 求只选了一门学科的学生的数量和对应的名字
c = (math - english - chinese) | (english - math - chinese) | (chinese - english - math)
print(len(c), c)
# d.求只选了两门学科的学生的数量和对应的名字
d = (math & english - chinese) | (english & math - chinese) | (chinese & english - math)
print(len(d), d)
# e.求选了三门学生的学生的数量和对应的名字
e = math & english & chinese
print(len(e), e)

2.字符串和字符

a.什么是字符串(str)

1.容器型数据类型(一种同时保存多个文字符号的容器):
将引号(既可以是一个引号开头和结尾,也可以是三个引号开头和结尾)作为容器的标志,里面的每个符号就是字符串的元素
2.字符串是不可变的;字符串是有序的
3.字符串中的元素可以是任何文字符号,字符串的元素又叫字符

# 三个引号开始结尾的字符串可以直接换行
str6 = '''abc
123'''

b.转义字符

字符串中的每个独立的符号就是字符串的元素,又叫字符;字符串中的字符分为两种:普通字符、转义字符
普通字符:在字符串中表示符号本身的字符就是普通字符
转义字符:在特定符号前加\表示特殊意义或者特殊功能的字符就是转义字符
常用的转义字符:
\n - 换行
\t - 水平制表符(相当于按了一下tab)
’ - 普通的单引号
" - 普通的双引号
\ - 一个反斜杠

# 1个转义字符的长度是1
str5 = ('\tabc\n123\\你好')
print(len(str5))

c.r字符串

在字符串的最前面加r或者R,可以让字符串中所有的转义字符的功能消失(r可以让字符串中所有的字符都编程普通字符)

str2=r'\tabc\n123\\你好'
print(str2)  # \tabc\n123\\你好

3.字符编码

a.字符编码

计算机只具备保存数字的能力,为了能够让计算机存储文字符号,给每一个符号对应了一个固定的数字,每次在需要存储文字符号的时候就存储这个符号对应的数字。
每个字符对应的那个固定的数字,就是这个字符的编码值。

b.编码表

常见的编码表有两种:ASCII码表、Unicode编码表(python)
a.ASCII码表:只有128个字符(全是美国常用的符号)
数字字符在大写字母的前面
大写字母在小写字母前面
字母和数字字符都是连续递增
大写字母和小写字母之间有间隙
(0-48;A-65;a-97)

b.Unicode编码表
Unicode编码表中前128个字符就是ASCII码表中的字符
Unicode编码表中包含了世界上所有的国家所有的名族的所有的语言的符号(万国码)
中文编码范围:4e00~9fa5

chr(编码值) - 获取编码值对应字符

ord(字符) - 获取指定字符对应的编码值

# 注意:如果是16进制的编码符,在使用时必须加前缀'0x'或'0X'
# 打印所有中文
for x in range(0x4e00, 0x9fa5+1):
    print(chr(x),end=' ')
# ord(字符)   -   获取指定字符对应的编码值
# 注意:字符指的是长度为1的字符串
print(ord('a'))

c.编码字符

在字符串中表示字符有两种方法:直接提供字符、提供编码字符
编码字符:\u4位的16进制编码值

str1='一\u4e00'
print(str1)
str2='a=\u0061'
print(str2)
char1='吃'
print('\u4e00'<=char1<='\u9fa5')
str1 = '第一个盲文符号:\u28ee'
print(str1)

4.字符串基本操作

a.查操作

获取字符:和列表获取元素的语法一样

1.查单个:字符串[下标]

str1 = 'hello world!'
print(str1[0], str1[-1], str1[4])

2.字符串切片

str1 = 'hello world!'
print(str1[0:-1])
print(str1[1:-1:2])
print(str1[1:-3])

3.遍历

str1 = 'hello world!'
for x in str1:
    print(x)
for x in range(len(str1)):
    print(x, str1[x])

b.字符串相关操作

1.字符串1+字符串2 - 将两个字符串合并成一个新的字符串

str1 = 'abc'
str2 = 'hello'
str3 = str1 + str2
print(str3)

2.字符串*N - 字符串重复N次产生一个新的字符

str1 = 'abc'
print(str1*3)

3.in 和 not in

字符串1 in 字符串2 - 判断字符串1是否是字符串2的子串(判断字符串2中是否包含字符串1)

print('a' in 'abc')  # True
print('ab' in 'abc')  # True
print('ac' in 'abc')  # False

4.比较运算

print('abc'=='abc')  # True
print('abc'=='bca')  # False

两个字符串比较大小比较的是第一对不相等的字符的大小

print('abc'>'mn')  # False
print('zbc'>'mn')  # True
print('Zbc'>'mn')  # False

比较运算的应用 - 判断字符的性质
判断x是否是数字字符:‘0’<=x<=‘9’
判断x是否是小写字母:‘a’<=x<=‘z’
判断x是否是大写字母:‘A’<=x<=‘Z’
判断x是否是字母:‘a’<=x<=‘z’or’A’<=x<=‘Z’
判断x是否是中文:‘\u4e00’<=x<=‘\u9fa5’

c.字符串相关函数

len(字符串) - 统计字符串中字符的个数
str(数据) - 将指定的数据转换为字符串(所有的数据都可以转换为字符串,转换的是在打印值的外面加引号)

list1=[10,20,30]
print(list1)  # [10, 20, 30]
print(str(list1))  # [10, 20, 30]    但是是'[10, 20, 30]'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值