使用字符串 1.字符串格式化:精简版 >>> format = "hello %s.%s!" >>> values = ('world','oh') >>> print format % values hello world.oh! >>> format = "pi: %.3f" >>> from math import pi >>> print format % pi pi: 3.142 模板字符串 >>> from string import Template >>> s = Template('$x, glorious') >>> s.substitute(x='slurm') 'slurm, glorious' 如果替换字符串是单词的一部分,参数名必须用括号括起来 >>> s = Template("It's ${x}tastic") >>> s.substitute(x='slurm') "It's slurmtastic" >>> 还可使用字典变量提供值/名称对 >>> s = Template('$name do $thing') >>> d = {} >>> d['name'] = 'andy' >>> d['thing'] = 'hello world' >>> s.substitute(d) 'andy do hello world' 2.字符串格式化:完整版 字段宽度和精度 >>> '%10f' % pi ' 3.141593' >>> '%10.2f' % pi ' 3.14' >>> '%.2f' % pi '3.14' 可以使用*作为字段宽度或者精度,此时数值会从元组参数中读出 >>> '%.*s' % (5, 'guido van rossum') 'guido' 符号,对齐和0填充 在字段宽度和精度值之前还可以放置一个"标表",该标表可以是零、加号、减号或空格 零表示数字将会用0进行填充 >>> '%010.2f' % pi '0000003.14' 减号用来左对齐数值 >>> '%-10.2f' % pi '3.14 ' 空白在正数前加上空格,这在需要对齐正负数时很有用 >>> print('% 5d' % 10) + '\n' + ('% 5d' % -10) 10 -10 >>> print('% d' % 10) + '\n' + ('% d' % -10) 10 -10 加号表示不管正数还是负数都标示出符号 >>> print('%+5d' % 10) + '\n' + ('%+5d' % -10) +10 -10 字符串格式化实例 [python] width = input('please input width:') price_width = 10 title_width = width - price_width print ('=' * width) header_format = '%-*s%*s'; item_format = '%-*s%*.2f'; print (header_format % (title_width,'Items',price_width,'price')) print ('-' * width) print (item_format % (title_width,'iphone',price_width,1.2)) print ('=' * width) [/python] 3.字符串方法 find查找子字符串,返回子字符串所在位置的最左边索引,没有返回-1 >>> 'hello world'.find('ld'); 9 这个方法接受可选的起始点和结束点参数,指定的范围包含第一个索引,不包含第二个索引,这在python中是个惯例 >>> 'hello world'.find('ld',5); 9 >>> 'hello world'.find('he',5); -1 >>> 'hello world'.find('he'); 0 >>> 'hello world'.find('he',0,1); -1 >>> 'hello world'.find('he',0,2); 0 类似的in方法 >>> 'h' in('fdsah') True >>> 'h' in('fdsa') False >>> 'fd' in('fdsah') True join 是字符串中非常重要的方法,是split方法的逆方法,用来添加元素 >>> jo = ['1','2','3','4','5'] >>> sep = '+' >>> sep.join(jo) '1+2+3+4+5' >>> dirs = '','www','magento' >>> '/'.join(dirs) '/www/magento' >>> '/www/magento'.split('/') ['', 'www', 'magento'] lower 返回字符串的小写 >>> 'HELLO'.lower() 'hello' title讲字符串转换为标题,就是所有单词的首字母大写 >>> 'hello world'.title() 'Hello World' replace >>> 'hello php'.replace('php','python') 'hello python' split join的逆方法 >>> 'hello world'.split() ['hello', 'world'] strip (lstrip,rstrip) 返回去除两侧(不包括的内部)空格的字符串 >>> ' hello world '.strip() 'hello world' translate 和replace方法一样,替换字符串某些部分,不同处,这个只处理单个字符,优势在于可以同时进行多个替换 >>> from string import maketrans >>> table = maketrans('cs','kz') >>> len(table) 256 >>> table[97:123] 'abkdefghijklmnopqrztuvwxyz' >>> 'this is an incredible test'.translate(table,'') 'thiz iz an inkredible tezt'