首页 > 代码库 > python数据结构-序列之字符串

python数据结构-序列之字符串

python中包含六种内建的序列:列表;元组;字符串;unicode字符串;buffer对象;xrange对象。


一、字符串:

所有标准的序列操作(索引、分片、乘法、加、成员资格、迭代、求最大最小值等)对字符串同样使用。需要注意的一点是字符串都是不可变的。


1、基本操作

>>> a="iloveu"
>>> a[0]        //索引
‘i‘
>>> b="uloveme"
>>> a+b            //加法
‘iloveuuloveme‘
>>> a[3:6:2]        //分片
‘vu‘
>>> u in a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘u‘ is not defined
>>> ‘u‘ in a
True
>>> a*2            //乘法
‘iloveuiloveu‘
>>> max(a)        //求最大值
‘v‘
>>> min(a)        //求最小值
‘e‘
>>>


2、字符串格式化:(通过%来实现)

在%左侧放置一个字符串(格式化字符串),而右侧放置希望格式化的值(可以是任何东西)(如果右操作数是元组的话,则其中的每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符)。

可以使用一个值,如一个字符串或者数字,也可以使用多个值的元组或字典,一般情况下使用元组:


格式化要点:

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

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

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

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

  5.     转换类型:如表


如:

a)、元组格式化

>>> a="hello %s %s enough for ya"
>>> b=(‘world‘,‘hot‘)
>>> print a%b            //左侧放置一个字符串,右侧放置希望格式化的值
hello world hot enough for ya
>>>
>>> c=[‘lisi‘,‘that‘]
>>> print (a % c)        //如果用列表或其他序列来代替元组,那么序列就会被解释为一个值。只有元组 和                                          字典可以格式化一个以上的值
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: not enough arguments for format string
>>>

格式化字符串的 “%s“成为转换说明符,他们标记了需要插入转换值的位置。s表示值会被格式化为字符串(如果不是字符串,则会用str函数将其转换为字符串)。

注意:如果要在格式化字符串里面包括百分号,则必须使用%%,这样python就不会将百分号误认为是转换说明符了。

>>> print("%d + %d = %d"  %  (1,2,3))
1 + 2 = 3
>>>



b)、浮点数格式化

需要用到:格式化字符 %f同时需要给定精度(一个句点在加上希望保留的小数位数);因为格式化说明符总是以表示类型的字符结束,所以精度应该放在类型字符前面。

如:

>>> a="pi with three decimals:%.3f"
>>> pi=3.1415926
>>> print(a%pi)
pi with three decimals:3.142
>>>

c)、模板字符串


d)、






python数据结构-序列之字符串