一、字符串常用方法
1.capitalize()
功能:使用字符串的首字母大写,字符串中其他字符小写。
用法:string.capitalize() --无参数
注意事项:字符串定义后是无法修改的,只能拿到原始的字符串之后再生成新的字符串。如果字符串中的内容是中文,则使用capitalize方法不会发生变化。
weather = 'it is April in St. Petersburg and it is still snowing.'
new_weather = weather.capitalize()
print(weather, new_weather)
2.count()
功能:返回当前字符串中某个元素的个数
用法:string.count(item)
参数:item表示需要被查询个数的元素
注意事项:如果查询的元素不存在的话,返回0
info = '''
Mathematics is a very beautiful language. It is also a subject that everyone who studies computing must be exposed to.
'''
a = info.count('a')
b = info.count('b')
c = info.count('c')
d = info.count('d')
print(a, b, c, d)
list_storage = [a, b, c, d]
print(list_storage)
print('The largest value in the list: ', max(list_storage))
dict_storage = {
'a': a,
'b': b,
'c': c,
'd': d
}
print('The corresponding values for each member are: ', dict_storage)
3.find() index()
功能:二者都用于查找元素
用法:
string.find(item) – item是想查询的元素
string.index(item) --item是想查询的元素
二者对比:
如果find找不到元素,会返回-1
如果index找不到元素,会直接报错
注意事项:字符串里的位置是从左到右,而且是从0开始的
info = 'optimization_theory'
new_info = info[:: -1] # 倒序索引
print(new_info)
result1 = new_info.find('ti')
print(result1)
result2 = new_info.index('it')
print(result2)
4.format()
格式化注意事项:
字符串格式化使用操作符%实现。
格式化字符串与格式符变量之间用一个%连接,%两边有一个空格。
对应格式符的变量,变量与格式符顺序一一对应,数量保持一致,超过一个格式化变量要使用小括号包裹。
格式化函数format
用法:string.format()
使用format的字符串主体使用{}大括号替代格式符
python3.6之后加入新格式化方案 f - string
字符串前加f符号
需要格式化的位置使用{变量名},这里是直接再{}中加入定义好的变量名
方法一:使用 % 替代已经定义的变量
name = 'xg'
age = 3
info1 = 'my name is %s, my age is %s'
print(info1 % (name, age))
方法二:使用format函数
name = 'xg'
age = 5
info2 = 'my name is {}, my age is {}'
print(info2.format(name, age))
方法三:使用f - string
name = 'xg'
age = 7
info3 = f'my name is {name}, my age is {age}'
print(info3)
5.格式化符号
%c 格式化字符
%u 格式化无符号整形(正整形)
%f 格式化浮点型
%d 格式化整形
%s 格式化字符串,通用类型
%o 格式化无符号八进制
%x 格式化无符号16进制数,16进制下使用A-F来表示10-15,字母不区分大小写。
%e 科学计数法格式化浮点数
6.转义字符
什么是转义字符?
字符要转成其他含义字符的功能
\ + 字符
在python中,字符串加r来将字符串的转义字符无效化
符号 | 说明 |
---|---|
\n | 换行,一般用于末尾 |
\t | 一个间隔符(横向制表符) |
\v | 男性符号(纵向制表符) |
\b | 退格符,将光标前移,覆盖(删除前一个) |
\r | 回车 |
’ | 转义字符串中的单引号 |
\ | 转义斜杠 |
7.replace()
功能:将字符串中的旧元素替换成新元素,并指定替换的数量
用法:string.replace(old, new, max)
参数:
old表示被替换的元素
new表示替换的元素
max可选,代表替换几个,默认全部替换
info = ('The role of optimization theory in machine learning is huge. \n'
'The two complement each other.')
a = 'The'
b = 'of'
c = '*'
d = '$'
test = info.replace(a, c).replace(b, d)
print(test)
8.zfill()
功能:为字符串定义长度,如不满足,缺少的部分用0填补
用法:string.zfill(width)
参数:width是新字符串希望的宽度
注意事项:与字符串的字符无关,如果定义长度 < 当前字符串的长度,则不发生变化
heart = 'love'
if __name__ == '__main__':
print(' t ' + heart)
print('t ' + heart)
print(heart.zfill(10))
print(heart.zfill(9))
print(heart.zfill(8))
print(heart.zfill(6))
print(heart.zfill(4))
可以使用zfill使得字符串heart前一直补0,然后画出一个类似于♥一半的形状
9.strip()
功能:去掉字符串左右两边的指定元素,默认是空格
用法:string.strip(item)
参数:item表示我们想要去掉的元素,也可以不填,保持默认
拓展:
传入的元素如果不在开头或者结尾,则strip方法无效
lstrip表示仅去掉字符串开头的指定元素或空格
rstrip表示仅去掉字符串结尾的指定元素或空格
# 使用strip去掉字符串两边的空格
info = ' my name is dewei '
new_info = info.strip()
print('.' + new_info + '.')
# 去掉指定的元素
info_01 = 'my name is xg'
new_info_01 = info_01.strip(info_01)
print(new_info_01)
print(len(new_info_01))
# 去掉开头或者结尾的元素
# 总结:lstrip和rstrip分别是去首尾元素,strip是去两侧元素
info2 = '1234561'
print(info2.strip('1'))
print(info2.lstrip('1'))
print(info2.rstrip('1'))
10.isspace() istitle() isupper() islower()
isspace
功能:判断字符串是否是一个由空格组成的字符串
用法:string.isspace() --无参数,返回布尔类型
注意事项:由空格组成的字符串,并不是空字符串
istitle
功能:判断字符串是否是一个标题
用法:string.istitle() – 无参数,返回布尔类型
注意事项:只能用于英文,判断是否是标题的方法是首字母是大写,而且其他字母应该是小写
isupper() islower()
功能:isupper判断字符串中的字母是否都是大写
islower判断字符串里的字母是否都是小写
用法:string.isupper() --无参数,返回布尔类型
string.islower() – 无参数,返回布尔类型
注意事项:只检测字符串里的字母,对其他字符不做判断
join() split
常用于数据类型的转换
info = 'Machine Leaning'
print(info.isspace())
print(info.istitle())
print(info.isupper())
print(info.islower())
11.lower() casefold()
功能:使得字符串小写
用法:string.lower() string.casefold()
注意事项:字符串类型是一个不可以改变的数据类型
info = 'HOW ARE YOU'
print(info.lower())
print(info.casefold())
12.upper()
功能:使得字符串全部变为大写
注意事项:源字符串不会发生变化,因为字符串类型是不可变数据类型
info = 'how are you'
print(info.upper())
13.swapcase()
功能:使字符串中大小写字母进行替换
注意事项:只对字符串中的字母有效,符号以及数字符号不会发生变化
info = 'How Are You'
print(info.swapcase())
14.startwith endswith
功能:
startwith 判断字符串开始位置是否是某元素
endswith 判断字符串结尾是否是某元素
用法:
string.startwith(item) --item 我们需要查询匹配的元素,返回布尔值
string.endswith(item) --item 我们需要查询匹配的元素,返回布尔值
参数:
可以传入开头字符串以及结尾字符串,也可以传入整个字符串,当传入整个字符串的社会,相当于bool()方法
info = 'how are you'
result = info.startswith('how')
result1 = info.startswith('are')
result2 = info.endswith('you')
print(result, result1, result2)
二、总结
1.大多数方法的语法都是string.方法名()
2.字符串类型是不可变类型,不管使用的是哪个字符串方法,都是生成了新的字符串