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。即索引0,1,2,正好是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 = '')
|