1.字符串的常用操作
字符串是python中很重要的数据类型,属于不可变序列。在python中一切皆对象,任何对象都有布尔,非空字符串的布尔值为True。
python中的字符串本身有非常多的操作,具体为:
string.lower()#将字符串的所有字母字符转换为小写
string.upper()#将字符串里的所有字符转换为大写
string.split(sep=)#将字符串按照指定sep进行分割,以列表的类型输出不包括sep的几个元素
string.conut(sub)#将查找sub这个子串在该字符串中出现的次数
string.find(sub)#查找sub子串是否在该字符串中,若有没有则返回-1,若有则返回第一次出现sub的索引
string.index(sub)#查找sub子串是否在该字符串中,若有则返回第一次出现sub的索引,没有则程序报错
string.startswith(sub)#查询字符串是否以sub开头,若是则返回True
string.endswith(sub)#查询字符串是否以sub结尾,若是则返回True
string.replace(old,news,count)#使用一个new子串代替字符串中为old的子串,count是替换数量,默认是全部替换
string.center(width,fillchar)#在指定范围width内居中,可以用fillchar字符进行填充
string.join(iter)#在所有为iter的字符后面增加一个字符串
string.strip(chars)#字符串去除char,没有顺序,默认去除字符串左右的空格
string.lstrip(chars)#去掉chars左边的字符串
string.rstrip(chars)#去掉chars右边的字符串
str = 'NiHaoYa'
print(str.lower())
print(str.upper())
print(str.split(sep='a'))
print(str.count('a'))
print(str.find('a'),str.find('b'))
print(str.index('i'))
print(str.startswith('s'))
print(str.endswith('a'))
str1 =str.replace('Ni','ni')
print(str1)
str2 = str.join('n')
print(str2)
str3 = str.center(20," ")
print(str3)
str4 = str.strip('Ni')
print(str4)
str_ = "in hao oa ni"
str5 = str_.lstrip('in')
print(str5)
str6 = str_.rstrip('ni')
print(str6)
2.字符串的格式化
两个字符串之间可以用加号+进行拼接,但字符串如果要用这种方式连接其他类型的数据就会报错。但是python中也是有简化字符串与其他数据连接的方法,称为格式化字符串。格式化字符串的方法有三种:占位符、f-string、str.format()
(1)占位符
占位符也可应用于其他语言,属于比较传统的格式化数据的方法。python的占位符与C语言类似,包括%s:字符串型、%f:浮点型、%d:整型等。输出格式为print("%+型"%(变量名)),其中这几个变量名在()中的整体是一个元组类型的数据。
name ="小明"
ID = 123456
weight = 75.4
print("%s %d %.1f"%(name,ID,weight))
(2)f-string
f-string是python3.6以后才有的版本,用{}标明变量指代的字符。输出格式为print(f'{变量名} {变量名}')
name = "小刚"
ID = 987654
weight = 80.0
print(f'{name} {ID} {weight}')
(3)format
使用format方式使用用{}代表的模板字符串加赋值的方式连接输出多个字符,模板字符串为输出的内容加需要连接变量的索引值。输出格式为print("模板字符串".format(变量))
name ='小广'
ID = 114514
weight = 65.3
print("{0} {1} {2}".format(name,ID,weight))
format还可以对字符串进行精细化的控制输出,详细格式为:+用于填充的单个字符+对齐方式+字符串的输出宽度+,+.精度+类型
其中
对齐方式:<:左对齐\>:右对齐\^:居中对齐
,:数字千位分隔符
.精度:浮点型小数部分的位数或者字符串的最大长度
类型:包括整型:b\d\o\x\X,以及浮点型:e\E\f\%。e为科学计数法
str1 = 'nihao'
print("{0:_^20}".format(str1))
num = 123456.123456
print("{0:<20,.1e}".format(num))