python基础教程(第2版)第三章读后总结;

python3

基本的字符串操作

   索引,分片,乘法,判断成员资格,求长度,取最小值和最大值

   字符串都是不可变的

   字符串格式化使用字符串格式化操作符,即百分号%来实现,注意%也可用作求余运算

基本的转换说明符

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

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

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

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

  5> 转换类型

wKioL1S9rQCwUet_AAKnhloXVfc937.jpg

  

1.简单转换

In [1]: 'Price of eggs: $%d' % 6
Out[1]: 'Price of eggs: $6'


2.字段宽度和精度

   转换说明符可以包括字段宽度和精度,字段宽度是转换后的值所保留的最小字符个数,精度(对于数字转换来说)则是结果中应该包含的小数位数,或者(对于字符串转换来说)是转换后的值所能包含的最大字符个数。

 

In [14]: '%2f' %pi      
Out[14]: '3.141593'       //字段宽2,是这样的;     
In [15]: '%3f' %pi          
Out[15]: '3.141593'       //字段宽3,是这样的;    
In [16]: '%5f' %pi
Out[16]: '3.141593'       //字段宽5,是这样的;
In [17]: '%9f' %pi
Out[17]: ' 3.141593'      //字段宽9,是这样的;看见没,一共八位,前面多了一个空格位;
In [18]: '%10f' %pi
Out[18]: '  3.141593'     //字段宽10,前面多了两个空格位;
In [19]: '%10.2f' %pi     //字段宽是10,精度是2,通过(.)进行分割,你记住了吗?
Out[19]: '      3.14'
In [22]: '%.5s' % 'lambert'
Out[22]: 'lambe'           //精确度为5位


3.符号,对齐和0填充

    在字段宽度和精度值之间还可以放置一个“标表”,该标表可以是零,加号,减号或空格.

 零表示数字将会用0进行填充。

 In [32]: '%8.2f' %pi
Out[32]: '    3.14'           
In [33]: '%08.2f' %pi    
Out[33]: '00003.14'  
In [38]: '%-08.2f' %pi            //"-表示左对齐"
Out[38]: '3.14    '


总结,下面打印水果的价格表单

#!/usr/bin/python2.6
width = input('Pls enter width:')
prime_width = 10
item_width = width - prime_width
### %:转换的开始,- :左对齐, * :从元组中读出
header_format = '%-*s%*s'
format = '%-*s%*.2f'
print '=' * width
print header_format %(item_width,'Item', prime_width,'Prime')
print '-' * width
print format %(item_width,'Apples',prime_width,6.8)
print format %(item_width,'Pears',prime_width,3.8)
print format %(item_width,'Oranges',prime_width,2.6)
print format %(item_width,'Prunes',prime_width,3.3)
print '=' * width


结果如下:

[root@lambert ~]# python price.py 

Pls enter width:35

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

Item                          Prime

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

Apples                         6.80

Pears                          3.80

Oranges                        2.60

Prunes                         3.30

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

[root@lambert ~]# 


4.字符串方法

  字符串的所有方法来源于string模块,但是这个模块还包括一些不能作为字符串方法是用的常量和函数;常用如下;

wKioL1S9rSrT-kqOAAPPAzJRc3g362.jpg


 4.1  find方法可以在较长的字符串中查找子字符串,它返回子字符串所在的最左侧索引,如果没有找到返回值为-1

In [33]: 'Hello,Iam Lambert.Lee'.find('I')
Out[33]: 6                                   //不信你查一查
In [34]: 'Hello,Iam Lambert.Lee'.find('Lambert')
Out[34]: 10

 4.2   join方法是非常重要的字符串方法,用在队列中添加元素;而split则相反,用来将字符串分割成序列

In [40]: Num = ['a','b','c']
In [41]: sep = '+'
In [42]: sep.join(Num)
Out[42]: 'a+b+c'
In [43]: 'a+b+c'.split('+')
Out[43]: ['a', 'b', 'c']

 4.3   lower方法返回字符串的小写字母版,而title方法则相反;

In [44]: 'Hello,Lambert'.lower()
Out[44]: 'hello,lambert'
In [45]: 'Hello,Lambert'.title()
Out[45]: 'Hello,Lambert'

  

  4.4  replace方法返回某字符串的所有匹配项均被替换之后得到字符串;

In [46]: 'this is a test'.replace ('a','')
Out[46]: 'this is  test'


  4.5  strip方法返回去除两侧(不包括内部)空格的字符串;

In [51]: '  lambert,  nihaoa  '.strip()
Out[51]: 'lambert,  nihaoa'


  4.6  translate方法和replace方法一样,可以替换字符串中的某些部分,但是和replace不同的是,translate方法只处理单个字符。

      它的优势在于可以同时进行多个替换,有时候比replace效率高的多。但是这个需要先建一张转换表,非常复杂,不研究了,换成string

 模块里面的maketrans函数就行。一般用的不多,记住有这个概念就行;

 


你可能感兴趣的:(字符串,python,百分号,小数点)