string
字符串的表示
>>>print repr(1000L)
1000L
>>>print str(1000L)
1000
repr python表达形式,会输出目标类型
原始字符
原始字符对于反斜线不会有特殊对待,字符串以r开头表示原始字符
使用字符串
字符串是不可改变的
字符串格式化:完整版
转换类型 | 含义 |
---|---|
d,i | 带符号的十进制整数 |
o | 不带符号的八进制 |
u | 不带符号的十进制 |
x | 不带符号的十六进制(小写) |
X | 不带符号的十六进制(大写) |
e | 科学计数法表示的浮点数(小写) |
E | 科学计数法表示的浮点数(大写) |
f,F | 十进制浮点数 |
g | 如果指数大于-4或者小于精度值则和e相同,其它情况与f相同 |
G | 如果指数大于-4或者小于精度值则和E相同,其它情况与F相同 |
C | 单字符(使用repr转换任意python对象) |
r | 字符串(使用repr转换任意python对象) |
s | 字符串(使用str转换任意python对象) |
-
1.%字符 :
标记转换说明符的开始
-
2.转换标志(可选) :
- 表示左对齐; + 表示在转换值之前加上正负号; ""(空白字符)表示正数之前保留空格; 0 表示转换值若位数不够用0填充
-
3.最小字段宽度(可选) :
转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度会从元组中读出
- 4.点(.)后跟精度值(可选) : 如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将会从元组中读出。
格式化字符串的%s部分称为转换说明符(conversion specifier),他们比较了需要插入转换值的位置。s表示值会被格式转化为字符串----如果不是字符串,用str转换为字符串。
宽度
: 最小字符串个数
精度
: 小数位数
可以使用*(星号)表示字段宽度或者是精度,此时数值会从元组中读出:
>>>'%*.*s' % (5,4,'abcde')
' abcd'
符号,对齐使用0填充
在字段宽度和精度值之前可以放置一个"标志",该标志可以是零,减号,加号或空格。零表示使用0填充
零
>>> '%010.2f' % f
'0000003.14'
减号
:用来左对齐数值
>>> '%-10.2f' % pi
'3.14'
空白("")
:意味整数前加空格,在对齐正负数时很有用
>>>print ('% 5d' % 10) + '\n' + ('% 5d' % -10)
10
-10
正号(+)
: 正数前加空格,对齐正负数
>>> print ('%+5d' % 10) + '\n' + ('%+5d' % -10)
+10
-10
字符串方法
find
方法返回字符所在位置的最左端索引
join
方法连接字符串,需要连接的全是字符串
lower
方法返回字符串的小写版
upper
方法返回字符串的大写版
title
方法:首字母大写,其余小写
replace
方法返回字符串的所有匹配项全部替换之后的字符串
split
:将字符串分割成序列(如果不提供分隔符,程序会把空格作为分隔符(空格,制表,换行等))
strip
方法返回去除两侧(不包括内部)空格的字符串,也可以去除特定的字符,将他们作为参数即可:
>>>'*** this * is * a * test !!!***'.strip('!!!*')
`this * is * a * test`
translate
和replace方法一样替换字符串中的某一部分,不过可以同时进行多个替换
使用translate方法之前,需要先制作一张转换表(转换表是以某字符替换某字符的对应关系),使用string模块中的maketrans函数
from string import maketrans
table = maketrans('cs','kz')#maketrans接受两个等长的字符串