0%

python 字符串处理

python 的字符串处理。

字符串前面添加(u,r,b,f)的功能

r/R

在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash ‘' 。 例如,\n 在raw string中,是两个字符,\和n, 而不会转意为换行符。由于正则表达式和 \ 会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上’r’。

b

Python3里默认的str是(Python2里的)unicode, bytes是(Python2)的str, b前缀代表的就是bytes。 Python2里, b前缀没什么具体意义, 只是为了兼容Python3的这种写法。

u/U

表示unicode字符串 ,不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。 一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码。 建议所有编码方式采用UTF-8。

f

这个是我在 3.6+ 使用的功能(之前的版本可能也有)

1
2
3
4
a = '123'
b = f"123{a}"
print(b)
123123

字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
字符串切片

str = "1234567"
str[:3] 输出为123

L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引012,正好是3个元素。

如果第一个索引是0,还可以省略:
L[:3]

10个数,每两个取一个:
>>> L[:10:2]



字符串也不能修改,非要修改,只能和元祖一样,切片

str = "123"
str = str[:1] + "7" + str[1:]
str = "1723"

内置函数

str.capitalize() 使首字母大写
str.casefold() 整个字符改成小写
str.center() 看图片

函数

格式化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
format()

位置参数,必须从0开始

"{0} love {1}".format("i" ,"licong")
i love licong

关键字参数

"{a} love {c}".format(a = "li" ,c = "c")
li love c

如果位置参数和关键字参数一起使用,要保证位置参数在关键字参数之前

如果想打印{},必须进行花括号嵌套
"{{0}}".format("123")
{0},因为里面的花括号被花括号括起来,就只是普通的花括号了

"{0:.1f}{1}".format(27.567,"GB")
27.6GB 花括号里面可以进行对参数的要求

格式化字符的含义

用一个字符串去格式化另一个字符串 格式化符号 %

"%c %c %c" % (97,98,99) 必须加括号
输出 a b c %c对ASCII码进行转义

"%s" % "i love you"
输出 i love you

"%d + %d = %d" % (4,5,4+5)
输出 4 + 5 = 9

"%o" % 10
输出12

格式化操作辅助命令

"%5.1f" % 12.34
输出 12.3 加上空隔有宽度为五

"%10d" % 5
输出 5

"%-10d" % 5
输出"5 "

字符输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
python中如果输出字符是
print("c:\nov")

因为\n是转义字符所以会换行

所以可以这么写
print("c:\\nov")

但是如果遇到太多的需要转义的字符也太麻烦,python提供了原始字符

print(r"c:\nov")
也可以正常打印

但是如果原始字符后面的最后一个字符是\会出现错误
print(r"c:\nov\")

可以这样写
print(r"c:\nov") + print("\")z

如果需要写很长,三种方法

1.要用""" """

用六个引号,中间的可以随便写多长
六引号在不赋值的情况下,可以当做长的注释

2.str = '...../
....../
...... '

3.str = ('.....'
'......'
'......')

print() 默认换行
要想不换行 print (x,end = '')
请我喝杯咖啡吧~