字符串(四)
·字符串格式化输出
字符串格式化输出,就是要先制定一个模板,在这个模板中某个或者某几个地方留出空位来,然后在那些空位填上字符串。那么,那些空位,需要用一个符号来表示,这个符号通常被叫做占位符(仅仅是占据着那个位置,并不是输出的内容)。
In [29]: "i like %s" %"china"
Out[29]: 'i like china'
在这个字符串中,有一个符号:%s,就是一个占位符,这个占位符被其它的字符串“china”代替。
另外,不同的占位符,会表示那个位置应该被不同类型的对象填充。下面列出许多,供参考。不过,不用记忆,常用的只有%s和%d,或者再加上%f,其它的如果需要了,到这里来查即可。
占位符
说明
%s
字符串(采用str()的显示)
%r
字符串(采用repr()的显示)
%c
单个字符
%b
二进制整数
%d
十进制整数
%i
十进制整数
%o
八进制整数
%x
十六进制整数
%e
指数 (基底写为e)
%E
指数 (基底写为E)
%f
浮点数
%F
浮点数,与上相同
%g
指数(e)或浮点数 (根据显示长度)
%G
指数(E)或浮点数 (根据显示长度)
还可以在一个字符串中设置多个占位符。
In [31]: "i like %s , Chaojun Shi lives in %s." %("China","He bei")
Out[31]: 'i like China , Chaojun Shi lives in He bei.'
对于浮点数字的打印输出,还可以限定输出的小数位数和其它样式。
In[32]: "pi equal %.2f" % 3.1415926
Out[32]:'pi equal 3.14'
In[33]: "pi equal %+.2f" % 3.1415926
Out[33]:'pi equal +3.14'
关于类似的操作,还有很多变化,比如输出格式要宽度是多少等等。若在编程中遇到了,可以到网上查找,这里给一个参考图示。
其实,上面这种格式化方法,常常被认为是太“古老”了。因为在python中还有新的格式化方法。
In [51]: "I like{0}".format("python")
Out[51]: 'I like python'
这是python非常提倡的string.format()的格式化方法,其中{索引值}作为占位符,这种方法真的是非常好,而且非常简单,只需要将对应的东西,按照顺序在format后面的括号中排列好,分别对应占位符{}即可。
·常用的字符串方法
字符串的方法很多。可以通过dir来查看:
In [54]: dir(str)
Out[54]:
['__add__',
'__class__',
'__contains__',
'__delattr__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__getitem__',
'__getnewargs__',
'__getslice__',
'__gt__',
'__hash__',
'__init__',
'__le__',
'__len__',
'__lt__',
'__mod__',
'__mul__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__rmod__',
'__rmul__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__',
'_formatter_field_name_split',
'_formatter_parser',
'capitalize',
'center',
'count',
'decode',
'encode',
'endswith',
'expandtabs',
'find',
'format',
'index',
'isalnum',
'isalpha',
'isdigit',
'islower',
'isspace',
'istitle',
'isupper',
'join',
'ljust',
'lower',
'lstrip',
'partition',
'replace',
'rfind',
'rindex',
'rjust',
'rpartition',
'rsplit',
'rstrip',
'split',
'splitlines',
'startswith',
'strip',
'swapcase',
'title',
'translate',
'upper',
'zfill']
这么多,可以使用help()命令查看具体如何使用。例如:
In [52]: help(str.zfill)
Help on method_descriptor:
zfill(...)
S.zfill(width)-> string
Pad a numericstring S with zeros on the left, to fill a field
of thespecified width. The string S is nevertruncated.
常用的几个举例:
join拼接字符串
split 将字符串根据某个分割符进行分割。
Strip去掉字符串的左右空格
Istrip去掉字符串的左边空格
Rstrip去掉字符串的右边空格
S.upper() #S中的字母大写
S.lower() #S中的字母小写
S.capitalize() #首字母大写
S.isupper() #S中的字母是否全是大写
S.islower() #S中的字母是否全是小写
S.istitle() #S中字符串中所有的单词拼写首字母是否为大写,且其他字母为小写