【python 字符串】Python基础教程之字符串

更新时间:2017-05-07    来源:python    手机版     字体:

【www.bbyears.com--python】

1 基本字符串操作 2 字符串格式化:精简版 2.1 用字符串格式化操作符 2.2 用string的Template格式化字符串 3 字符串格式化:完整版 3.1 转换说明符 3.2 简单转换 3.3 字段宽度和精度 3.4 符号,对齐和 0 填充 4 字符串方法 4.1 find 4.2 join 4.3 lower 4.4 replace 4.5 split 4.6 strip 4.7 translate

1 基本字符串操作

    说明:字符串也是序列的一种,所以分片,乘法,索引,求长度,最大, 最小,判断成员资格等都可以应用在字符串上; 注意:字符串是不可变的,所以不能对其进行赋值; 例子
    python">
    	  
    		 代码如下
    		
    	  
    	  
    		
    python">1:  >>> mystr="Test string"
    
    2:  >>> mystr[0] = "t"
    
    3:  Traceback (most recent call last):
    
    4:  File "", line 1, in 
    
    5:    mystr[0] = "t"
    
    6:  TypeError: "str" object does not support item assignment
    
    7:  >>>
    2 字符串格式化:精简版
 

2.1 用字符串格式化操作符

    说明:字符串格式化使用字符串格式化操作符百分号( % )实现,在操作符的左侧是格式化字符串,右侧是希望被格式化的值; 注意:
      只有元组和字典可以被格式化为一个以上的值,列表和其他序列会被格式化为一个值; 转换说明符,用于标记需要插入转换值的位置; 如果在格式化字符串中要输出百分号,则需要使用 %%
    例子:
    	  
    		 代码如下
    		
    	  
    	  
    		
     1:  #一般格式化
    
     2:  >>> myformat = "Hello, my name is %s %s"
    
     3:  >>> name = ("Bill","Gunn")
    
     4:  >>> print (myformat % name)
    
     5:  Hello, my name is Bill Gunn
    
     6:  >>>
    
     7:  
    
     8:  #用列表格式化
    
     9:  >>> myformat = "Hello, my name is %s"
    
    10:  >>> name=["Bill", "Gunn"]
    
    11:  >>> print(myformat % name)
    
    12:  Hello, my name is ["Bill", "Gunn"]
    
    13:  
    
    14:  #打印浮点数
    
    15:  >>> import math
    
    16:  >>> print ("PI = %.5f" % pi)
    
    17:  PI = 3.14159
    
    18:  
    
    19:  #打印百分号
    
    20:  >>> print("%.2f%%"% 22.3)
    
    21:  22.30%
    
    22:  >>>
    2.2 用string的Template格式化字符串
    说明:类似于Unix Shell中的变量替换,使用substitute方法,将字符串 模板中的$foo替换为传递进来的参数foo 例子:
    	  
    		 代码如下
    		
    	  
    	  
    		
     1:  #从string模块中导入Template
    
     2:  >>> from string import Template
    
     3:  #创建模板
    
     4:  >>> myformat = Template("My name is $name")
    
     5:  #替换变量并打印
    
     6:  >>> print(myformat.substitute(name="Bill Gunn"))
    
     7:  My name is Bill Gunn
    
     8:  >>>
    
     9:  
    
    10:  #输出美元符号的方法,在模板里输入两个$
    
    11:  >>> mytemplate = Template("The price is $$$price")
    
    12:  >>> mytemplate.substitute(price=100)
    
    13:  "The price is $100"
    
    14:  >>>
    
    15:  
    
    16:  #如果参数与后面的字符串相连,需要用大括号将其括起来
    
    17:  >>> from string import Template
    
    18:  >>> mytemplate = Template("It"s ${x}tastic!")
    
    19:  >>> mytemplate.substitute(x="slum")
    
    20:  "It"s slumtastic!"
    
    21:  >>>
    
    22:  
    
    23:  #使用字典替换参数
    
    24:  >>> mytemplate = Template("My $property is $value")
    
    25:  >>> name = {}
    
    26:  >>> name["property"] = "name"
    
    27:  >>> name["value"] = "Bill Gunn"
    
    28:  >>> mytemplate.substitute(name)
    
    29:  "My name is Bill Gunn"
    
    30:  >>>
    
    31:  
    3 字符串格式化:完整版
    说明:字符串格式化操作符的右操作数如果是元组,那么在格式化字符串 中必须将元组中的各个元素都有对应的转义说明符。 例子:
    	  
    		 代码如下
    		
    	  
    	  
    		
     1:  >>> data = tuple(list("123"))
    
     2:  >>> data
    
     3:  ("1", "2", "3")
    
     4:  #格式化字符串中只有一个转义说明符,而元组中有三个元素,转换会报错
    
     5:  >>> print ("data is %s" % data)
    
     6:  Traceback (most recent call last):
    
     7:    File "", line 1, in 
    
     8:      print ("data is %s" % data)
    
     9:  TypeError: not all arguments converted during string formatting
    
    10:  #显示元组中的全部元素
    
    11:  >>> print ("data is %s %s %s" % data)
    
    12:  data is 1 2 3
    
    13:  >>>
    
    14:  
    3.1 转换说明符
    转换说明符   转义说明符 含义 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对象)

3.2 简单转换

    例子:
    	  
    		 代码如下
    		
    	  
    	  
    		
     1:  #十进制整数
    
     2:  >>> print ("The price is $%d" % 12)
    
     3:  The price is $12
    
     4:  
    
     5:  #十六进制整数
    
     6:  >>> print ("Hex %x" % 12)
    
     7:  Hex c
    
     8:  
    
     9:  #八进制整数
    
    10:  >>> print ("Oct %o" % 12)
    
    11:  Oct 14
    
    12:  >>>
    
    13:  
    3.3 字段宽度和精度
    说明:
      字段宽度:转换后的值所保留的最小字符个数; 字段精度:转换后,结果中应该的小数位数; 可以使用*作为字段宽度或者精度
    例子:
    	  
    		 代码如下
    		
    	  
    	  
    		
     1:  #限制宽度
    
     2:  >>> "%10f" % math.pi
    
     3:  "  3.141593"
    
     4:  
    
     5:  #限制小数位数
    
     6:  >>> "%5.2f" % math.pi
    
     7:  " 3.14"
    
     8:  
    
     9:  #用星号限制宽度和精度,下例中,宽度为10,精度为5
    
    10:  >>> "%*.*s" % (10, 5, "adfasdfadsfasdfasdfasdf")
    
    11:  "     adfas"
    
    12:  >>>
    
    13:  
    3.4 符号,对齐和 0 填充
    说明:
      零:宽度不够时用数字0填充; 负号:左对齐; 正号:不管是正数还是负数都标记出符号 空格:宽度不够时用空格填充;
    例子:
    	  
    		 代码如下
    		
    	  
    	  
    		
     1:  #空白补0
    
     2:  >>> print ("%010f" % math.pi)
    
     3:  003.141593
    
     4:  
    
     5:  #左对齐
    
     6:  >>> "%-10.2f" % math.pi
    
     7:  "3.14      "
    
     8:  
    
     9:  #空白右对齐
    
    10:  >>> print("% 5d\n% 5d" % (123, 12))
    
    11:    123
    
    12:     12
    
    13:  
    
    14:  #显示正负符号
    
    15:  >>> print ("%+5d\n%+5d" % (123, -123))
    
    16:   +123
    
    17:   -123
    
    18:  >>>
    
    19:  
    4 字符串方法
 

4.1 find

    说明:用于在长字符串中查找子字符串,如果找到,则返回子字符串在左 侧第一次出现的索引,没找到返回-1,在查找时,还可以指定在长字符串 中查找的范围,提供起始索引和结束索引作为查找的参数; 注意:查找时,包括起始索引位置,但是不包括结束索引的位置; 例子:
    	  
    		 代码如下
    		
    	  
    	  
    		
     1:  >>> string.ascii_letters
    
     2:  "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    
     3:  >>> letters = string.ascii_letters
    
     4:  >>> letters.find("AB")
    
     5:  26
    
     6:  >>> letters.find("X",30,-1)
    
     7:  49
    
     8:  >>> letters.find("AB",26)
    
     9:  26
    
    10:  
    4.2 join
    说明:将队列中的元素用字符串连接起来,并且列表中的元素必须是字符 串; 例子:
    	  
    		 代码如下
    		
    	  
    	  
    		1: >>> data = list("123456") 2: >>> data 3: ["1", "2", "3", "4", "5", "6"] 4: >>> "AB".join(data) 5: "1AB2AB3AB4AB5AB6" 6: >>> 
    	  
    	7:  

4.3 lower

    说明:将字符串转换成小写字母,并返回,但是原字符串不改变; 例子:
    	  
    		 代码如下
    		
    	  
    	  
    		
    1:  >>> mystr="ABCD"
    
    2:  >>> mystr.lower()
    
    3:  "abcd"
    
    4:  >>> mystr
    
    5:  "ABCD"
    
    6:  >>> 
    
    7:  
    4.4 replace
    说明:返回所有匹配项都被替换之后的字符串 例子:
    	  
    		 代码如下
    		
    	  
    	  
    		
    1:  >>> mystr = "My name is Geng Qi"
    
    2:  >>> mystr.replace("Geng Qi", "Bill Gunn")
    
    3:  "My name is Bill Gunn"
    
    4:  >>>
    4.5 split
    说明:将字符串分割成序列; 注意:如果不提供分割符,则会将空白符当作分割符; 例子
    	  
    		 代码如下
    		
    	  
    	  
    		
     1:  #以加号为分割符
    
     2:  >>> mystr = "1+2+3+4+5+6"
    
     3:  >>> mystr.split("+")
    
     4:  ["1", "2", "3", "4", "5", "6"]
    
     5:  
    
     6:  #不提供分割符时,以空白符为分割符
    
     7:  >>> mystr = "This    is a       test string"
    
     8:  >>> mystr.split()
    
     9:  ["This", "is", "a", "test", "string"]
    
    10:  >>> 
    
    11:  
    4.6 strip
    说明:去除两侧的空白,也可以去除指定的字符; 例子:
    	  
    		 代码如下
    		
    	  
    	  
    		
     1:  >>> mystr = "           asdfad adfasf asdf                      "
    
     2:  >>> mystr
    
     3:  "     \tasdfad adfasf asdf       \t\t"
    
     4:  #去除空白符
    
     5:  >>> mystr.strip()
    
     6:  "asdfad adfasf asdf"
    
     7:  
    
     8:  #去除指定字符
    
     9:  >>> mystr.strip("\t")
    
    10:  "     \tasdfad adfasf" asdf       "
    
    11:  >>> 
    
    12:  
    4.7 translate
    说明:translate是单字替换,可以同时替换多个字符 例子:
    	  
    		 代码如下
    		
    	  
    	  
    		
    1:  >>> table = str.maketrans("cs", "kz")
    
    2:  >>> table
    
    3:  {115: 122, 99: 107}
    
    4:  >>> "Please don"t knock at my door!".translate(table)
    
    5:  "Pleaze don"t knokk at my door!"
    
    6:  

本文来源:http://www.bbyears.com/jiaocheng/32450.html

热门标签

更多>>

本类排行