基本字符串操作
所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值和最大值)对字符串同样适用;
字符串都是不可变的
因此,类似一下的分片赋值是不合法的:
website = 'http://blog.youkuaiyun.com/grassroots2011.net'
website[-3:] = 'com'
字符串格式化
字符串格式化适用字符串格式化操作符即百分号%来实现。
在%的左侧放置一个字符串(格式化字符串),而右侧则放置希望格式化的值。
format = 'Hello,%s,%s enough for ya?'
values = ('world','Hot')
print (format % values)输出:Hello,world,Hot enough for ya?注:%s称为转换说明符(conversion specifier),s表示值会被格式为字符串-如果不是字符串,则会用str将其转换为字符串
===============================格式化实数(浮点数),使用f说明符类型
提供所需要的精度:
一个句点再加上希望保留的小数位数。因为格式化说明符总是以表示类型的字符结束,所以精度应该放在类型字符前面:
format = 'Pi with three decimals:%.3f'
from math import pi
print (format % pi)输出:Pi with three decimals:3.142==============================模板字符串
string模块提供另外一种格式化值的方法:模板字符串。它的工作方式类似于很多UNIX SHELL里的变量替换。
如:substitute这个模板方法会用传递进来的关键字参数foo替换字符串中的$foo
from string import Template
s = Template('$x,glorious $x!')
s.substitute(x='slurm')输出:slurm,glorious slurm!=============================替换字段的第一部分用{}
s = Template("It`s ${x}tastic")
s.substitute(x='slurm')
=============================可以使用$$插入美元符号
s = Template("Make $$ selling $!")
s.substituts(x='slurm')=============================除了关键字参数外,还可以使用字典变量提供值/名称对
s = Template("A $thing must never $action")
d = {}
d[thing]='gentleman'
d[action]='show his socks'
s.substituts(d)字符串格式化转换类型
| d,i | 带符号的十进制整数 |
| o | 不带符号的八进制 |
| u | 不带符号的十进制 |
| x | 不带符号的十六进制--小写 |
| X | 不带符号的十六进制--大写 |
| e | 科学计数法表示的浮点数--小写 |
| E | 科学计数法表示的浮点数--大写 |
| f,F | 十进制浮点数 |
| g | 如果指数大于-4或者小于精度值则和e相同,其他情况与f相同 |
| G | 如果指数大于-4或者小于精度值则和E相同,其他情况与F相同 |
| C | 单字符 |
| r | 字符串(使用repr转换任意Python对象) |
| s | 字符串(使用str转换任意Python对象) |
1、简单转换
简单的转换只需要写出转换类型,使用起来很简单
'Price of eggs: %d' %42输出:Price of eggs:422、字段宽度和精度
转换说明符可以包括字段宽度和精度。字段宽度是转换后的值所保留的最小字符数个数,精度则是结果应该包含的小数位数,或者是转换后的值所能包含的最大字符个数。
这两个参数都是整数(首先是字符宽度,然后是精度),通过点号(.) 分隔。
'%10f' %42 #字段宽度10
'%10.2f' %42 #字段宽度10 精度2
'%.2f' %42 #精度2
可以使用*作为字段宽度或者精度'%.*s' %(5,'Guido van Rossum')输出:'Guido'3、符号、对齐和0填充
在字段宽度和精度之前还可以放置一个“标表”,该标表可以是零、加号、减号和空格。
零表示数字将会用0进行填充
'%010.2f' %42
输出:0000042.00注意:在010中开头的那个0并不意味着字段宽度说明符为八进制数,它只是个普通的Python数值。当使用010作为字段宽度说明符的时候,表示字段宽度为10,并且用0进行填充空位,而不是说字段宽度为8
减号(-)用来左对齐数值:
'%-10.2f' % pi
输出:3.14可以看到,在数字的右侧多出了额外的空格。
格式化试例:
#使用给定的宽度打印格式化后的价格列表
width = input('Please enter width:')
price_width = 10
item_width = width - price_width
header_format = '%-*s%*s'
format = '%-*s%*.2f'
print ('='*width)
print (header_format % (item_width,'Item',price_width,'Price'))
print ('-'*width)
print (format % (item_width,'Apples',price_width,0.4))
.....字符串方法
一些有用的字符串常量
string.digits:包含数字0 ~ 9的字符串
string.letters:包含所有字母的字符串
string.lowercase:包含所有小写字母的字符串
string.printable:包含所有可打印字符的字符串
string.punctuation:包含所有标点的字符串
string.uppercase:包含所有大写字母的字符串
1、find-查找子字符串
find方法可以在一个较长的字符串中查找子字符串。它返回子串所在位置的左端索引。如果没有找到则返回-1
'Width a moo-moo here'.find('moo')返回72、join-用来在列队中添加元素
seq = ['1','2','3']
sep = '+'
sep.join(seq)join是split方法的逆方法
3、lower-返回字符串的小写字母版
'Trondheim Hammer Dance'.lower()4、replace-替换
replace方法返回某字符串的所有匹配项均被替换之后得到字符串
'This is a test'.replace('is','eez')输出:Theez eez a test
5、split-用来将字符串分割成序列
'1+2+3+4+5'.split('+')输出:['1','2','3','4','5']
本文介绍了Python中字符串的基本操作,包括序列操作、格式化方法、模板字符串的使用及各种字符串方法等。并详细解释了字符串格式化的规则,字段宽度、精度、对齐方式等设置。
429

被折叠的 条评论
为什么被折叠?



