(三)字符串常用内置方法和三种字符串格式化方法
字符串常用内置方法
- capitalize函数
将字符串的首字母大写,其他字母小写,只对字母有效,正常是新的字符串,对原字符串不影响
用法:newstr = string.capitalize()
name = 'shai shai'
new_name = name.capitalize()
print(new_name) # Shai shai
- upper函数和lower/casefold函数
将字符串全体大写/小写,支队字符串中的字母有效,如已经为大写或小写,则无效
casefold可以对更多语种的字母大写变成小写,不过平时使用lower就足够了
用法:bigstr = string.upper()
smallstr = string.lower()
smallstr = string.casefold()
name = 'shai shai 是蠢狗'
big_name = name.upper()
print(big_name) # SHAI SHAI 是蠢狗
small_name = big_name.lower()
print(small_name) #shai shai 是蠢狗
small_names = big.name.casefold() #shai shai 是蠢狗
- swapcase函数
将字符串中大小写字符转换,也只对字母有效,其他类型没影响
用法:str = string.swapcase()
name = '狗狗姓名:Shai Shai'
new_name = name.swapcase()
print(new_name) # 狗狗姓名:sHAI sHAI
- zfill函数
为字符串定义长度,如不满足,缺少的部分用0填补,与字符串的字符无关,作用于任何类型,如定义长度小于当前字符串长度,则不发生变化
用法:newstr = string.zfill(width)
参数with:新字符串希望的长度
name = '狗狗姓名是:Shai Shai'
new_name = name.zfill(20)
print(new_name) # 00000狗狗姓名是:Shai Shai
- count函数
返回当前字符串某个成员(元素)的个数,查询元素不存在时,则返回0
用法:intype = string.count(item)
参数item:查询个数的元素
info = 'my name is shaishai'
count = info.count('s')
print(count) # 3
count = info.count('b')
print(count) # 0
- startswith和endswith函数
startswith判断开始位是否是某元素
endswith判断结尾位是否是某元素
用法:string.startswith/endswith(item) -->你想查询匹配的元素,返回一个布尔值
print('my name is shaishai'.endswith('my')) # False
print('my name is shaishai'.startswith('my')) # True
- find和index函数
都是返回你想寻找的成员的位置
用法:string.find/index(item) -->item:你想查询的元素,返回一个整型,字符串里的位置从左向右,以0开始.
不同:index找不到元素时,会报错;find不会报错,所以多数情况都是使用find
name = 'my name is shaishai'
i = name.find('s')
print(i) # 9
j = name.index('n')
print(j) # 3
print(name.index('yanmai')) # ValueError: substring not found
print(name.find('yanmai')) # -1
- strip函数
将去掉字符串左右两边指定元素,默认是空格
用法:newstr = string.strip(item) -->item可不填,默认为空格。
传入的元素如果不在开头或结尾则无效
lstrip仅去掉字符串开头的指定元素或空格
rstrip 仅去掉字符串结尾的指定元素或空格
s = 'yan mai dd'
print(s.strip('y')) #an mai dd
print(s.strip('d')) #yan mai
print(s.strip("m")) #yan mai dd 元素不在开头或结尾,则未有效果info = 'abcdea'
print(info.strip('a')) #bcde 开头和结尾都存在指定元素‘a’,所以同时去掉了
print(info.lstrip('a')) #bcdea
print(info.rstrip('a')) #abcdeinfos = ' shaishai '
print(infos.strip()) #shaishai 去掉了左右两边的空格
- replace函数
将字符串中的old(旧元素)替换成new(新元素),并能指定替换的数量
用法:newstr = string.replace(old,new,max)
old:被替换的元素
new:替代old的元素
max:可选,代表替换几个,默认全部替换全部匹配的old元素
name = 'xixi is a cat'
print(name.replace('xi','shai')) #未填入替换数量,默认全部替换 shaishai is a cat
print(name.replace('xi','shai',1)) #仅替换1个 shaixi is a catinfo = '今天是另人沮丧的一天,天是灰色的,心情很down'
print(info.replace('今天','昨天').replace('沮丧','开心').replace('灰色','带**').replace('down','nice')) #昨天是另人开心的一天,天是带**的,心情很nice
字符串中返回bool类型的函数集合
- isspace
判断字符串是否是一个由空格组成的字符
用法:booltype = string.isspace() -->无参数可传,返回一个布尔类型
s = ' '
print(s.isspace()) #True
ss = 'shai shai'
print(ss.isspace()) #False
由空格组成的字符串,不是空字符串:"!="
- istitle
判断字符串是否是一个标题类型(英文单词首字母为大写,其余为小写),只能判断英文字母。
用法:booltype = string.istitle() -->无参数可传,返回一个布尔类型
name = 'Shai Shai'
print(name.istitle()) #True
name = 'shaishai'
print(name.istitle()) #False
- isupper与islower
判断字符串中的字母是否都是大小写,只检测字符串里的字母,对其他字符不做判断
用法:booltype = string.isupper() -->无参数可传,返回一个布尔类型
name = 'Shai Shai'
print(name.isupper()) #False
print(name.islower()) #False
name = 'SHAISHAI和我'
print(name.isupper()) #True
name = 'shaishai'
print(name.islower()) #True
- join与split
在后续介绍类型转化的文章再详细记录
字符串的编码格式
1.什么是编码格式?
有一定规则,使用这种规则,就能知道传输的信息是什么意思
常见的编码格式:


2.字符串的格式化方式:
一个固定的字符串中有部分元素是根据变量的值而改变的字符串
- 字符串格式化使用操作符%来实现
%后面可以接列表,字典和元祖
info = 'my name is %s, my age is %s' % ('xixi',2)
print(info) #my name is xixi, my age is 2
- 字符串格式化函数-format
string.format函数用例格式化字符串
使用format的字符串主体使用{}大括号来替代格式符
string.format(data,data,data…)
info = '今天天气{},适合带{}和{}一起出去玩'.format('很好','兮兮','晒晒')
print(info) # 今天天气很好,适合带兮兮和晒晒一起出去玩
- python3.6加入的新格式化方案-f-strings
定义一个变量,字符串前加f符号,需要格式化的位置使用{变量名}
name = '晒晒'
age = 6
info = f'我有一条狗,它叫{name},今年{age}岁了'
print(info) #我有一条狗,它叫晒晒,今年6岁了
平时比较常用的是format函数,官方也是推荐这个函数
3.字符串格式化的符号


4.字符串的转义字符

>>> info = 'my \nee'
>>> print(info)
my
ee
>>> info = 'my \tee'
>>> print(info)
my ee
>>> info = 'my \vee'
>>> print(info)
my ee
>>> a = '\a'
>>> print(a) #会有响铃声音
>>> info = 'my \bee'
>>> print(info)
myee #光标向前移,删除前一个
>>> info = 'my \ree'
>>> print(info)
ee #会把\r之前的内容都删除掉
>>> info = 'my \fee'
>>> print(info)
my ee
>>> info = 'my \'ee'
>>> print(info)
my 'ee
>>> info = 'my \"ee'
>>> print(info)
my "ee
>>> info = 'my \\ee'
>>> print(info)
my \ee
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
