Python基础教程笔记——使用字符串

使用字符串

Table of Contents

1 基本字符串操作

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

2 字符串格式化:精简版

2.1 用字符串格式化操作符

  1. 说明:字符串格式化使用字符串格式化操作符百分号( % )实现,在操作符的左侧是格式化字符串,右侧是希望被格式化的值;
  2. 注意:
    1. 只有元组和字典可以被格式化为一个以上的值,列表和其他序列会被格式化为一个值;
    2. 转换说明符,用于标记需要插入转换值的位置;
    3. 如果在格式化字符串中要输出百分号,则需要使用 %%
  3. 例子:
     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格式化字符串

  1. 说明:类似于Unix Shell中的变量替换,使用substitute方法,将字符串 模板中的$foo替换为传递进来的参数foo
  2. 例子:
     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. 说明:字符串格式化操作符的右操作数如果是元组,那么在格式化字符串 中必须将元组中的各个元素都有对应的转义说明符。
  2. 例子:
     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 "<pyshell#18>", line 1, in <module>
    
     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 转换说明符

  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. 例子:

     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. 说明:

    1. 字段宽度:转换后的值所保留的最小字符个数;
    2. 字段精度:转换后,结果中应该的小数位数;
    3. 可以使用*作为字段宽度或者精度
  2. 例子:
     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 填充

  1. 说明:

    1. 零:宽度不够时用数字0填充;
    2. 负号:左对齐;
    3. 正号:不管是正数还是负数都标记出符号
    4. 空格:宽度不够时用空格填充;
  2. 例子:
     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,在查找时,还可以指定在长字符串 中查找的范围,提供起始索引和结束索引作为查找的参数;
  2. 注意:查找时,包括起始索引位置,但是不包括结束索引的位置;
  3. 例子:
     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. 说明:将队列中的元素用字符串连接起来,并且列表中的元素必须是字符 串;
  2. 例子:
    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. 说明:将字符串转换成小写字母,并返回,但是原字符串不改变;
  2. 例子:
    1:  >>> mystr="ABCD"
    
    2:  >>> mystr.lower()
    
    3:  ‘abcd‘
    
    4:  >>> mystr
    
    5:  ‘ABCD‘
    
    6:  >>> 
    
    7:
    

4.4 replace

  1. 说明:返回所有匹配项都被替换之后的字符串
  2. 例子:
    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. 注意:如果不提供分割符,则会将空白符当作分割符;
  3. 例子
     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. 说明:去除两侧的空白,也可以去除指定的字符;
  2. 例子:
     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

  1. 说明:translate是单字替换,可以同时替换多个字符
  2. 例子:
    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!"
时间: 2024-10-17 13:39:11

Python基础教程笔记——使用字符串的相关文章

python基础教程笔记——画幅好画(详解)

今天写一下基础教程里面的第二个项目,主要使用python来做一个pdf的图,比较简单. 首先我们需要安装用到的模块pip install reportlab即可. 书上是用urlopen从往上下了一个txt文件,然后打开处理一下得到数据,因为我从这个url路径没有获取到数据,所以直接写了一点数据在程序里. urlopen比较简单,以后写爬虫也会经常用到,所以这里就不讲了,只单独讲讲reportlab模块. #encoding:utf8 from reportlab.graphics.shapes

python 基础教程 笔记 一

第一章 python 基础知识 1.1 数字和数学表达式 1.2 python 2.x 和python 3.x print的区别 1.3 python 2.x 和 python 3.x input 的区别 1.4 数学函数 1.5 input 和 raw_input 区别 第二章 列表和元组 第三章 使用字符串 1.1 数字和表达式 Python 默认的除法:整数/整数,无论是否整除都得到整数,不整除的截取小时部分 1 / 2 0 如果想要Python 执行普通的除法,可以之用浮点数来实现也可以

Python基础教程笔记——第3章:使用字符串

字符串是不可修改的,标准序列操作(索引,分片,判断成员资格,求长度,取最大值 最小值)对字符串都是有效的.

python基础教程笔记 第1单元 &amp;&amp; 第2单元

1.http://docs.python.org/dev/3.0/whatsnew/3.0.htmlpython-announce-listpython-help2.交互式编译器3.非整数除法 .1.>>> from__future__import divisionSyntaxError: invalid syntax.2.Linux -Qnew4.整数除法 // 就算是浮点数也会执行整除取余 2.75%0.5幂运算符 ** (pow(base,times[mod]))幂运算符比取反等级

Python基础教程笔记——第1章

1.8 函数 pow(x,y) x^y abs(x)          取数的绝对值 round(x)   会把浮点数四舍五入为最接近的整数 floor(x)     向下取整的函数,但是需要先import  math模块 1.9 模块 用import导入模块来扩展Python的功能 (1)import 模块    然后用法:模块.函数 (2)from 模块 import 函数     然后用法:函数 (3)使用变量来赋值,然后使用函数,,,如:foo=math.floor()   foo(12

Python基础教程笔记 第二章

本章的名字虽然叫列表和元组,但是本章讲的最多的是列表,元祖指讲了很少的一部分.因为元组和列表很多方面都是一样的. 列表和元组的区别:列表可以被修改,元祖不可以被修改. python包含的6种内建序列:列表.元组.字符串.Unicode字符串.buffer对象.xrange对象. 内建函数返回的是元组,因为元组是不可以被修改的. 列表的形式是[] ,元素之间通过逗号分隔. 序列(例如列表和元组)和映射(例如字典)是两类主要的容器.序列中的每个元素都有自己编号,而映射中的每个元素则有一个名字(也称为

Python基础教程笔记——第2章:列表和元组

python shell 里重复上一次的命令:Alt+p 2.3 列表:Python的苦力 (1)list函数 (2)列表赋值,不蹦蹦为一个元素不存在的位置赋值 (3)删除元素,del name[1] (4)分片赋值,name[2:]=list('ar') 列表方法:对象.方法(参数) (1)a.append(6)   在列表末尾添加新的对象 (2)a.count("dh")   统计元素在列表中出现的次数 (3)a.extend(b)   可以在列表的末尾一次性追加多个值 (4)a.

Python基础教程笔记 第一章

/  表示整除,当导入_future_模块中的version时,/ 表示正常的的除法, 此时可用//表示整除,不论数字是整型还是浮点型,都可以用//表示整除. ** 表示幂次方  例如 2**3   表示2的3次方  结果为8 ** 运算符的优先级比负号 - 的运算符优先级高,所以 -3**2 = -9    (-3)**2 = 9 Pow(3,2)函数也表示幂次方的计算,此函数表示3的2次方,结果为9 输入使用input函数,input(“please input a number:”)   

Python基础教程笔记——第4章:字典

字典 字典是Python唯一内建的数学映射类型,字典中的值没有特殊的顺序,键可以是数字,字符串,甚至是元组 字典的创建: 字典由键值对构成,字典中键是唯一的,而值不唯一.>>> a_map={"a":1,"b":2,"c":2}  >>> a_map["a"] dict函数来创建字典: >>> items=[('a','b'),(1,2)]  >>> a_