python学习笔记3

使用字符串

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'



你可能感兴趣的:(python,python学习笔记)