码迷,mamicode.com
首页 > 其他好文 > 详细

字符串

时间:2016-01-26 01:39:29      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:

1.基本字符串操作.

  所有标准的序列操作(索引、分片、乘法、、判断成员资格、求长度、取最小值、取最大值)对字符串同样适用。

  注意:字符串都是不可变的,因此任何改变字符串的操作都是不合法的。

2.字符串格式化:精简版

  字符串格式化适用字符串格式化操作符即百分号%来实现。

  在%左侧放置一个字符串(格式化字符串),而右侧则放置希望被格式化的值。可以使用一个值,入一个字符串或者数字,也可以使用多个值的元组或者字典。

  一般情况下使用元组,示例如下:

1 >>>format = "hello,%s. %s enough for ya"
2 >>>values = (world,hot)
3 >>>print format % values
4 hello,world. hot enough for ya

  注意:如果使用列表或者其他序列代替元组,那么序列会被解释成为一个值。只有元组和字典可以格式化一个以上的值。

  格式化字符串的%s部分称为转换说明符(conversion specifier),它们标记了需要插入转换值得位置。s表示值会被格式化为字符串——如果不是字符串,则会用str将其转换为字符串。这个方法大多数值都有效。

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

3.字符串格式化:完整版

  3.1 简单转换

1 >>> from math import pi
2 >>> pi
3 3.141592653589793
4 >>> Price of %s: $%d %(eggs,42)
5 Price of eggs: $42

  3.2 字段宽度和精度

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

  示例如下:

>>> %10f % pi #字段宽度 10
  3.141593
>>> %10.2f % pi #字段宽度 10,精度 2
      3.14
>>> %.2f % pi #精度 2
3.14

  可以使用*来作为字段宽度或者精度,此时数值会从元组参数中读出:

1 >>> %.*s %(5,Guido van Rossum)
2 Guido
3 >>> %.*s %(6,Guido van Rossum)
4 Guido 
5 >>> %.*s %(10,Guido van Rossum)
6 Guido van 

  3.3 符号、对齐和用0填充

  在字段宽度和精度值之前还可以放置一个“标识”,该标识可以是0、+、-或者空格。

  示例如下:

1 >>> %010.2f % pi
2 0000003.14

  注意:在010中开头的那个0并不意味着段宽度说明符为八进制数,他只是个普通的python数值。当使用010作为字段宽度说明符的时候,表示字段宽度为10,用0补充。

  字符串格式化示例:

 1 #使用给定的宽度打印格式化后的价格列表
 2 width = input(please enter width: )
 3 width = int(width)
 4 
 5 price_width = 10                        #定义价格字段宽度
 6 item_width = width - price_width        #定义菜单裂变宽度
 7 
 8 header_format = %-*s%*s             #定义表头格式
 9 formats       = %-*s%*.2f            #定义列表格式
10 
11 print(=*width)                     #打印
12 
13 #打印表头
14 print(header_format%(item_width,Item,price_width,Price))
15 
16 print(- * width)
17 
18 #打印商品列表
19 print(formats%(item_width,Apples,price_width,0.4))
20 print(formats%(item_width,Pears,price_width,0.5))
21 print(formats%(item_width,Cantaloupes,price_width,1.92))
22 
23 print(= * width)
24 
25 """
26 结果:
27 please enter width: 35
28 ===================================
29 Item                          Price
30 -----------------------------------
31 Apples                         0.40
32 Pears                          0.50
33 Cantaloupes                    1.92
34 ===================================
35 """

4.  字符串方法

  4.1 find

  find方法可以在一个较长的字符串中查找子串。它返回子串所在位置的最左端索引。如果没有找到则返回-1

  示例如下:

1 >>> title = hello python!
2 >>> title.find(jim)#找不到返回-1
3 -1
4 >>> title.find(hello)#找到返回最左端索引
5 0

  注意:与find有相似功能的有in,但in操作符只能用来查找字符串中的单个字符。find方法并不发回布尔值。

  这个方法还可以接收可选的起始点和结束点参数,示例如下:

 1 >>> subject = $$$ Get rich now!!!$$$
 2 >>> subject.find($$$)
 3 0
 4 >>> subject.find($$$,1) #只提供起始点
 5 19
 6 >>> subject.find(!!!) #只提供起始点
 7 16
 8 >>> subject.find(!!!) #提供起始点和结束点
 9 16
10 >>> subject.find(!!!,0,16) #提供起始点和结束点
11 -1

  4.2 join

  join方法是非常重要的字符串方法,他是split方法的逆方法,用来连接序列中的元素:

 1 >>> seq = [1,2,3,4,5]
 2 >>> swp = +
 3 >>> swp.join(seq) #连接字符串列表
 4 Traceback (most recent call last):
 5   File "<stdin>", line 1, in <module>
 6 TypeError: sequence item 0: expected str instance, int found
 7 >>> seq = [1,2,3,4,5]
 8 >>> swp = +
 9 >>> swp.join(seq)
10 1+2+3+4+5

  4.3 splist

  splist方法用来将字符串分割成序列。示例如下:

1 >>> 1+2+3+4+5.split(+)
2 [1, 2, 3, 4, 5]

  4.4 strip

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

1 >>>         hello,python   .strip()
2 hello,python

  strip方法和lower方法一起使用的话就可以很方便的对比输入的和存储的值。

  4.5 translate

    translate方法和replace方法一样,可以替换字符串中的某写部分,但是和前者不同的是,translate方法只处理单个字符。他的优势在于可以同时进行多个替换,有些时候  比replace效率高得多。

  

字符串

标签:

原文地址:http://www.cnblogs.com/rsdqc/p/5159155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!