定义:
转义字符 | 描述 |
---|---|
\\ |
反斜杠符号 |
\' |
单引号 |
\" |
双引号 |
\n |
换行 |
\t |
横向制表符(TAB) |
\r |
回车 |
原始字符串在字符串前边加一个英文字母 r
三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
切片与拼接:
start:end
这种形式,包括「start
索引」对应的元素,不包括「end
索引」对应的元素。用加号拼接
内置方法:
capitalize()
将字符串的第一个字符转换为大写。lower()
转换字符串中所有大写字符为小写。upper()
转换字符串中的小写字母为大写。swapcase()
将字符串中大写转换为小写,小写转换为大写。count(str, beg= 0,end=len(string))
返回str
在 string 里面出现的次数,如果beg
或者end
指定则返回指定范围内str
出现的次数。
endswith(suffix, beg=0, end=len(string))
检查字符串是否以指定子字符串 suffix
结束,如果是,返回 True,否则返回 False。如果 beg
和 end
指定值,则在指定范围内检查。startswith(substr, beg=0,end=len(string))
检查字符串是否以指定子字符串 substr
开头,如果是,返回 True,否则返回 False。如果 beg
和 end
指定值,则在指定范围内检查。find(str, beg=0, end=len(string))
检测 str
是否包含在字符串中,如果指定范围 beg
和 end
,则检查是否包含在指定范围内,如果包含,返回开始的索引值,否则返回 -1。rfind(str, beg=0,end=len(string))
类似于 find()
函数,不过是从右边开始查找。isnumeric()
如果字符串中只包含数字字符,则返回 True,否则返回 False。ljust(width[, fillchar])
返回一个原字符串左对齐,并使用fillchar
(默认空格)填充至长度width
的新字符串。rjust(width[, fillchar])
返回一个原字符串右对齐,并使用fillchar
(默认空格)填充至长度width
的新字符串。lstrip([chars])
截掉字符串左边的空格或指定字符。rstrip([chars])
删除字符串末尾的空格或指定字符。strip([chars])
在字符串上执行lstrip()
和rstrip()
。str1 = ' qwe123ads '
str2 = str1.strip().strip('qwe')
print(str2)
#123ads
str2 = ',test1,'
str3 = str2.lstrip(',').rstrip(',')
print(str3)
#test1
partition(sub)
找到子字符串sub,把字符串分为一个三元组(pre_sub,sub,fol_sub)
,如果字符串中不包含sub则返回('原字符串','','')
。rpartition(sub)
类似于partition()
方法,不过是从右边开始查找。str3 = 'test_20210201.png'
t1 = str3.partition('_2021')
print(t1)
#('test', '_2021', '0201.png')
print(t1[1])
#_2021
replace(old, new [, max])
把 将字符串中的old
替换成new
,如果max
指定,则替换不超过max
次。
split(str="", num)
不带参数默认是以空格为分隔符切片字符串,如果num
参数有设置,则仅分隔num
个子字符串,返回切片后的子字符串拼接的列表。
string = "hello boy<[www.baidu.com]>byebye"
print(string.split('[')[1].split(']')[0]) # www.baidu.com
print(string.split('[')[1].split(']')[0].split('.'))
# ['www', 'baidu', 'com']
splitlines([keepends])
按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数keepends
为 False,不包含换行符,如果为 True,则保留换行符。
str6 = 'I \n Love \n LsgoGroup'
print(str6.splitlines()) # ['I ', ' Love ', ' LsgoGroup']
print(str6.splitlines(True)) # ['I \n', ' Love \n', ' LsgoGroup']
maketrans(intab, outtab)
创建字符映射的转换表,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。translate(table, deletechars="")
根据参数table
给出的表,转换字符串的字符,要过滤掉的字符放到deletechars
参数中。将所有元音字母转换为指定的数字
from string import maketrans # 必须调用 maketrans 函数。
intab = "aeiou"
outtab = "12345"
trantab = maketrans(intab, outtab)
str = "this is string example....wow!!!"
print(str.translate(trantab))
#上述写法和下面相同 不引入函数时直接调用函数 报错函数不存在
str7 = 'this is string example....wow!!!'
intab = 'aeiou'
outtab = '12345'
trantab = str7.maketrans(intab, outtab)
print(trantab) # {97: 49, 111: 52, 117: 53, 101: 50, 105: 51}
print(str7.translate(trantab)) # th3s 3s str3ng 2x1mpl2....w4w!!!
格式化:
format
格式化函数
https://www.runoob.com/python/att-string-format.html
符 号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串,用str()方法处理对象 |
%r | 格式化字符串,用rper()方法处理对象 |
%d | 格式化整数 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | 根据值的大小决定使用%f或%e |
%G | 作用同%g,根据值的大小决定使用%f或%E |
print('%c' % 97) # a
print('%c %c %c' % (97, 98, 99)) # a b c
print('%d + %d = %d' % (4, 5, 9)) # 4 + 5 = 9
print("我叫 %s 今年 %d 岁!" % ('小明', 10)) # 我叫 小明 今年 10 岁!
print('%o' % 10) # 12
print('%x' % 10) # a
print('%X' % 10) # A
print('%f' % 27.658) # 27.658000
print('%e' % 27.658) # 2.765800e+01
print('%E' % 27.658) # 2.765800E+01
print('%g' % 27.658) # 27.658
text = "I am %d years old." % 22
print("I said: %s." % text) # I said: I am 22 years old..
print("I said: %r." % text) # I said: 'I am 22 years old.'
符号 | 功能 |
---|---|
m.n |
m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
- |
用作左对齐 |
+ |
在正数前面显示加号( + ) |
# |
在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
0 |
显示的数字前面填充'0'而不是默认的空格 |
print('%5.1f' % 27.658) # ' 27.7'
print('%.2e' % 27.658) # 2.77e+01
print('%10d' % 10) # ' 10'
print('%-10d' % 10) # '10 '
print('%+d' % 10) # +10
print('%#o' % 10) # 0o12
print('%#x' % 108) # 0x6c
print('%010d' % 5) # 0000000005