1、字符串常量
(1)不依赖于语言环境:
string.ascii_letters ==>'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
string.ascii_lowercase ==> 'abcdefghijklmnopqrstuvwxyz'
string.ascii_uppercase ==> 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
(2)依赖于语言环境,并在locale.setlocale()调用时更新:
string.letters ==> 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
string.lowercase ==> 'abcdefghijklmnopqrstuvwxyz'
string.uppercase ==> ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’
(3)
string.digits ==> '0123456789'
string.hexdigits ==> '0123456789abcdefABCDEF'
string.octdigits ==> '01234567'
(4)ASCII字符的字符串,在C语言环境中被视为标点字符:
string.punctuation ==> '!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~'
(5)包含所有被视为空格的字符的字符串。在大多数系统中,包括字符空间,制表符,换行符,返回页面,换页符和垂直选项卡
string.whitespace ==> '\t\n\x0b\x0c\r '
(6) 可打印的字符串:
string.printable ==> 这是一个组合 (digits+letters+punctuation+whitespace)
‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ \t\n\x0b\x0c\r ’
2、字符串格式化
方法一:%
'd' 有符号整数小数。
'i' 有符号整数小数。
'o' 签名的八进制值。
'u' 过时的类型 - 它是相同的'd'。
'x' 有符号十六进制(小写)。
'X' 有符号十六进制(大写)。
'e' 浮点指数格式(小写)。
'E' 浮点指数格式(大写)。
'f' 浮点小数格式。
'F' 浮点小数格式。
'g' 浮点格式。如果指数小于-4或不小于精度,则使用小写指数格式,否则使用小数格式。
'G' 浮点格式。如果指数小于-4或不小于精度,则使用大写指数格式,否则使用小数格式。
'c' 单个字符(接受整数或单个字符串)。
'r' String(使用repr()转换任何Python对象 )。
's' String(使用转换任何Python对象 str())。
'%' 不转换参数,导致结果中出现'%' 字符。
方法二:str.format()
方法三:string模块中的Formatter类
(1)substitute(映射[,** kws ] ) 【缺少键时,会引发KeyError异常】
(2)safe_substitute(映射[,** kws ] )【不会引发KeyError异常,缺少键时,会返回$】
from string import Template
>>> s = Template('$who likes $what')
>>> s.substitute(who='tim', what='kung pao')
'tim likes kung pao'
# substitute和safe_substitute的区别展示(异常):
(1)substitute:引发异常(KeyError)
>>> d = dict(who='tim')
>>> Template('$who likes $what').substitute(d)
Traceback (most recent call last):
...
KeyError: 'what'
(2)不会引发异常
>>> Template('$who likes $what').safe_substitute(d)
'tim likes $what'