5.3.1 center方法
center方法用于将一个字符串在一定的宽度区域居中显示,并在字符串的两侧填充指定的字符(只能是长度为1的字符串),默认填充空格。
#使用center方法,在宽度30的区域居中显示,两侧区域填充空格
print("<" + "hello".center(30) + ">")
#使用format方法,在宽度30的区域居中显示,两侧区域填充空格
print("<{:^30}>".format("hello"))
#使用center方法,在宽度30的区域居中显示,两侧区域填充*
print("<" + "hello".center(30,"*") + ">")
#使用format方法,在宽度30的区域居中显示,两侧区域填充*
print("<{:*^30}>".format("hello"))
5.3.2 find方法
find方法用于在一个大字符串中查找子字符串,如果找到,find返回子字符串的第1个字符在大字符串中出现的位置,如果未找到,find方法返回-1。索引位置左闭右开。
s = input("请输入一个大字符串:")
while True:
subString = input("请输入一个子字符串:")
if subString == "end":
break
startStr = input("请输入开始索引:")
endStr = input("请输入结束索引:")
start = 0
end = len(s)
if startStr != "":
start = int(startStr)
if endStr != "":
end = int(endStr)
print("'{}'在'{}'的出现的位置是{}:".format(subString, s,s.find(subString,start,end)))
5.3.4 split方法
split方法与join方法互为逆方法。split通过一个分割符将字符串拆分成一个序列。默认split会把(空格符、制表符、换行符)作为分隔符。
#运行结果:['1','2','3','4','5']
print("1+2+3+4+5".split("+"))
#运行结果:['','usr,'local','nginx']
list = '/usr/local/nginx'.split('/')
print(list)
#C:\usr\local\nginx
print("C:" + "\\".join(list))
#['I','like','python']
print("I like python".split())
5.3.5 lower方法、upper方法和capwords函数
lower方法和upper方法分别用于将字符串中的所有字母字符转换为小写和大写。capwords是string模块中的函数,可以将字符串中的单词首字母转化为大写。
print("HEllo".lower())
print("hello".upper())
list = ["Python", "Ruby", "Java", "KOTLIN"]
if "Kotlin" in list:
print("找到Kotlin了")
else:
print("未找到Kotlin")
for lang in list:
if "kotlin" == lang.lower():
print("找到Kotlin了")
break;
s = "i not only like Python, but also like Kotlin."
import string
print(string.capwords(s))
某些情况下,如果无法保证字符串的大小写,可统一转化为小写或大写再进行比较。
5.3.6 replace方法
replace方法用于将一个字符串中的子字符串替换成另外一个字符串。该方法返回被替换后的字符串。如果在原字符串中未找到要替换的字符串,将返回原字符串。
#运行结果:This is a bike
print(“This is a car”.replace(“car”,”bike”))
#运行结果:This is a car
print(“This is a car”.replace(“place”,”bike”))
5.3.7 strip方法
strip方法用于截取字符串前后的空格,或截取字符串前后指定的字符。
print(" geekori.com ".strip())
print(" < geekori.com > ".strip())
langList = ["python", "java", "ruby", "scala", "perl"]
lang = " python "
if lang in langList:
print("<找到了python>")
else:
print("<未找到python>")
if lang.strip() in langList:
print("{找到了python}")
else:
print("{未找到python}")
#运行结果:Hello& *World
print("*** &* Hello& *World**&&&".strip(" *&"))
注意1:某些情况下需要转化为小写或大写,并去掉两端空格,再进行比较。
注意2:只去掉两端的空格,并不会去掉中间的空格。
注意3:指定的任意单个字符都会起作用。
5.3.8 translate方法、maketrans方法
translate方法用于替换单个字符,replace方法用于替换一个子字符串,从效率上来说,translate方法更快些。
首先要使用maketrans方法创建一个替换表,例如,将“ak”替换成“*$”。
table = s.maketrans(“ak”,”*$”)
s = "I not only like python, but also like kotlin."
table = s.maketrans("ak", "*$")
#运行结果:{97:42,107,36}
print(table)
#运行结果:2
print(len(table))
#根据替换表,替换单个字符
print(s.translate(table))
#替换单个字符的同时,删除指定的字符,此处为删除空格
table1 = s.maketrans("ak", "$%", " ")
print(s.translate(table1))
注意1:会替换所有匹配到的字符。
注意2:maketrans方法第3个参数可以指定删除的字符,参数长度可大于1,例如“ab”表示删除所有出现的“a”或“b”。