字符串
一、什么是字符串?
-
定义:单引号/双引号/三引号,引起来的都是字符串
-
特性:
- 有序(支持索引)
- 不可变(修改只能创建新的)
二、 字符
(字符串组成元素)
1. 字符分类:
-
普通字符:表示它本身
-
转义字符:
- 需要在引号里是字符串才能生效
- 一旦出现计划之外的特殊字符,直接使用原始字符串:r‘’
- \n :换行
- \t:水平制表符,一个Tab
- \:代表了一个反斜线字符‘\’
- ':代表了一个单引号的字符
- ":代表了一个双引号字符
-
编码字符 = 原字符:
-
定义:各种的字符、图片等转化成数字的格式
-
格式:‘\u + 四位的十六进制数’
- 注意这里十六进制不用写0x,易错
- str1 = ‘a’,和str1 = '\u0061’是一样的
- 举例:‘\u4e00abc’
-
什么时候用这个:
-
用最后一个中文时,直接’\u9fa5’
-
字符不会写时,用这个写法
-
-
2. 编码基础:
(所有东西:字符,图片等都是用数字保存到计算机的)
-
编码表:
-
ASCII表 :美国原创的码表,早期码表
A-65
a-97 -
Unicode表:万国码、统一码,是ASCII表的拓展,包含所有国家所有的语言,所有的符号
- Unicode里面使用十六进制进行保存
- 中文编码的范围:4e00 - 9fa5
-
-
编码相关操作
-
chr(编码值) - 获取编码值对应的字符
-
ord(字符) - 获取指定字符对应的编码值,返回的是十进制
-
hex(数字) - 转化为十六进制,注意前面没标注就是十进制数字
-
3.关于进制
-
关于十六进制:0-9和a-f(或A-F)组成:0ff,01b
-
一个数字默认都会当成十进制处理,需要特质某些进制的数字需要加一些特殊前缀:
- 二进制:0b, 0b01010101, 那个是0
- 八进制:0o, 0o721
- 十六进制:0x, 0x0ff
三、字符串操作
- 比较大小
- 比较第一个不相等的元素的编码值大小。(但注意不同类型数据是不能进行比较的)
- 要么都是字符串一起比较,注意字符串和编码字符:\u…是等同的 ;
- 要么ASCII码值(int类型)大小一起比较
- 增删改查:
- 查:索引
- 增:+、*
- 删:只能切片
- 改:切片
- in、not in:
- ‘hel’ in ‘hello world’ :判断前者是否被包含在后者中,必须是连续的
# 案例:统计str1中中文的个数
str1 = '换手机hss8223Kks是sjd==222'
count = 0
for i in str1:
if '一'<=i<=chr(0x9fa5):
count+=1
print(count)
# 案例:提取字符串中所有的大写字母
str2 = '涉及到MJk230023sjkU293shT=='
# 'MJUT'
for i in str2:
if 'A'<=i<='Z':
print(i)
print(type(ord('a')))
4
M
J
U
T
<class 'int'>