《python基础教程》笔记之字符串

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

字符串格式化字符串格式化使用字符串格式化操作符即百分号%来实现。在%的左侧放置一个字符串(格式化字符串),而在右侧则放置希望格式化的值,可以使用一个值,如一个字符串或者数字,也可以使用多个值的元组或者字典,如

>>>PRint "hello. %s.%s enough for ya?" % ('world', 'Hot')

hello. world.Hot enough for ya?

如果右操作数是元组的话,则其中的每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符。

基本的转换说明符包括以下部分,注意,这些项的顺序是至关重要的。

1. %字符:标记转换说明符的开始。

2. 转换标志(可选):-表示左对齐;+表示在转换值之前要加上正负号;“”表示正数之前保留空格;0表示转换值若位数不够则用0填充。

3. 最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度会从值元组中读出。

4. 点(.)后跟精度值(可选):如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将会从元组中读出。

5. 转换类型:见下表

如

#使用给定的宽度打印格式化后的价格列表width = input('width:')

price_width= 10item_width= width -price_width

header_format='%-*s%*s'format='%-*s%*.2f'print'-'*widthprintheader_format % (item_width,'Item', price_width,'Price')print'-'*widthprintformat % (item_width,'Apples', price_width, 0.4)printformat % (item_width,'Pears', price_width, 0.5)printformat % (item_width,'Cantaloupes', price_width, 1.92)printformat % (item_width,'Dried Apricots(16 0z.)', price_width, 8)printformat % (item_width,'prunex(4 1bs)', price_width, 12)print'='* width

结果如下

width:35

-----------------------------------

Item Price

-----------------------------------

Apples 0.40

Pears 0.50

Cantaloupes 1.92

Dried Apricots(16 0z.) 8.00

prunex(4 1bs) 12.00

=======================

字符串方法find -- 在一个较长的字符串中找子字符串,它返回子串所在位置的最左端索引,未找到则返回-1。此方法还接收可选的起始点和结束点参数。

>>> title = 'hello. world.Hot enough for ya?'

>>> title.find('wor')

7

>>> title.find('wor', 2, 6)

-1

join -- 在队列中添加元素

>>> seq = list('12345')

>>> sep = '+'

>>> sep.join(seq)

'1+2+3+4+5'

>>> dirs = '','usr','bin','env'

>>> '/'.join(dirs)

'/usr/bin/env'

>>> 'C:'+'\\'.join(dirs)

'C:\\usr\\bin\\env'

lower -- 返回字符串的小写字母版

replace -- 返回某字符串的所有匹配项均被替换之后得到的字符串。

split -- 将字符串分割成序列

>>> '1+2+3+4+5'.split('+')

['1', '2', '3', '4', '5']

>>> '/usr/bin/env'.split('/')

['', 'usr', 'bin', 'env']

>>> 'C:\\usr\\bin\\env'.split('\\')

['C:', 'usr', 'bin', 'env']

strip -- 返回除去两侧(不包括内部)空格的字符串,也可以指定需要去除的字符。

>>> '++!**1+2+3+4+5*++'.strip('+!*')

'1+2+3+4+5'

translate -- 可以替换字符串中的某些部分,只处理单个字符,并且可以同时进行多个替换。第一个参数指定需要替换的表,第二个参数指定需要删除的字符。

>>> from string import maketrans

>>> table = maketrans('cs', 'kz')

>>> 'This is an incredible test'.translate(table)

'Thiz iz an inkredible tezt'

>>> 'This is an incredible test'.translate(table, ' ')

'Thizizaninkredibletezt'

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航