总结一下在学习过程中遇到的字符串问题。
格式化操作符(%)
"%"是Python风格的字符串格式化操作符
%r——优先用repr()函数进行字符串转换
%s——优先用str()函数进行字符串转换
%d / %i——转成有符号十进制数
%u——转成无符号十进制数
%o——转成无符号八进制数
%f / %F——转成浮点数(小数部分自然截断)
格式化操作符辅助符
-——用做左对齐
m.n——m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
#——在八进制数前面显示零(0),在十六进制前面显示"0x"或者"0X"(取决 于用的是"x"还是"X")
字符串内建函数format()
格式化字符串函数str.format(),通过这个函数同样可以对字符串进行格式化处理。在format()函数中,使用“{}”符号来当作格式化操作符。
- 位置参数
根据format()里边的参数位置进行索引
print "{0} is {1} years old".format("Wilber", 28)
print "{} is {} years old".format("Wilber", 28)
print "Hi, {0}! {0} is {1} years old".format("Wilber", 28) - 关键字参数
print "{name} is {age} years old".format(name = "Wilber", age = 28) - 下标参数
li = ["Wilber", 28]
print "{0[0]} is {0[1]} years old".format(li) - 填充字符
格式{:填充符 格式符 宽度}.format(…)
:后跟填充字符,不指定默认为空格填充,格式符有三种:^、<、>分别表示居中、左对齐和右对齐,且只能是一个字符,格式符后跟宽度
print '{:>8}'.format('3.14')
print '{:0>8}'.format('3.14')
还可以用来表示浮点精度:
print '{:.4f}'.format(3.1415926)
print '{:0>10.4f}'.format(3.1415926)
字符串内建函数
其中S均表示任意一个字符串
小写
S.lower()大写
S.upper()大小写互换
S.swapcase()首字母大写
S.capitalize()输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。
S.ljust(width,[fillchar])右对齐
S.rjust(width,[fillchar])中间对齐
S.center(width, [fillchar])返回S中出现substr的第一个字母的标号,如果S中没有substr则返回-1。start和end作用就相当于在S[start:end]中搜索
S.find(substr, [start, [end]])返回S中最后出现的substr的第一个字母的标号,如果S中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号
S.rfind(substr, [start, [end]])计算substr在S中出现的次数
S.count(substr, [start, [end]])把S中的oldstar替换为newstr,count为替换次数
S.replace(oldstr, newstr, [count])把S中前后chars中有的字符全部去掉,可以理解为把S前后chars替换为None
S.strip([chars])
S.lstrip([chars])
S.rstrip([chars])以sep为分隔符,把S分成一个list。maxsplit表示分割的次数。默认的分割符为空白字符
S.split([sep, [maxsplit]])把seq代表的字符串序列,用S连接起来
S.join(seq)