zoukankan      html  css  js  c++  java
  • Python3学习笔记(六):字符串

    一、基本字符串操作


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

    二、字符串格式化


    字符串格式化使用字符串格式化操作符(%)来实现。

    1、格式化一个值:

    >>> "Hello,%s" % 'world'
    'Hello,world'

    2、格式化多个值:

    元组或字典实现:

    >>> print("Hello,%s. %s enough for ya?" % ('world','Hot'))
    Hello,world. Hot enough for ya?

    3、字符串格式化规则

    • %字符:标识转换说明符的开始。
    • 转换标志(可选):- 表示左对齐;+ 表示在转换的值前加上正负号;" "(空白字符)表示正数之前保留空格;0 表示转换值若位数不够则用0填充。
    • 最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度从值元组中读取。
    • 点(.)后跟精度值(可选):如果转换的是实数,精度值就表示小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将从元组中读取。
    • 转换类型:
    转换类型含义
    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对象)

    简单转换

    只需写出转换类型:

    >>> 'Price of eggs:%d' % 42
    'Price of eggs:42'
    >>> 'Hexadecimal price of eggs:%x' % 42
    'Hexadecimal price of eggs:2a'

    字段宽度和精度

    • 字段宽度是转换后的值保留的最小字符个数。
    • 字段精度,对于数字来说,是应该包含的小数位数;对于字符串来说,是转换后的值所能包含的最大字符个数。
    • 这两个参数都是整数(首先是宽度,然后是精度),以点号(.)分隔。如果只给出精度,就必须包含.号
    >>> '%10f' % 3.1415926
    '  3.141593'
    >>> '%10.2f' % 3.1415926
    '      3.14'
    >>> '%.2f' % 3.1415926
    '3.14'
    >>> '%.5s' % 'dhfuhduioshduio'
    'dhfuh'

    可以使用*做为字段宽度或精度,此时数值会从元组参数中读取

    >>> '%.*s' % (5,'dhfuhduioshduio')
    'dhfuh'
    >>> '%*.*s' % (10,5,'dhfuhduioshduio')
    '     dhfuh'

    符号、对齐和用0填充

    在字段宽度和精度值之前还可以放一个标志,该标志可以是零(0),加号(+),减号(-)或空格

    零(0)表示转换的值为数字时,不足宽度的部位将用0填充,转换的值为字符串时无影响

    >>> '%010.2f' % 3.1415926
    '0000003.14'
    >>> '%010.5s' % 'udshkdsfhdkjf'
    '     udshk'

    减号(-)表示左对齐数值

    >>> '%-10.2f' % 3.1415926
    '3.14      '

    加号(+)表示不管是正数还是负数都表示出正负号

    >>> '%+5d' % 10
    '  +10'
    >>> '%+5d' % -10
    '  -10'

    空格表示在正数前加上空格

    >>> '% 5d' % 10
    '   10'
    >>> '% 5d' % -10
    '  -10'

    三、字符串方法


    1、find

    用于在一个长字符串中查找子串。返回子串所在位置的最左端索引。如果没有找到则返回-1

    >>> title = "Monty Python's Flying Circus"
    >>> title.find('Monty')
    0
    >>> title.find('Python')
    6
    >>> title.find('Flying')
    15
    >>> title.find('Zirquss')
    -1

     这个方法还可以接受可选的起始点和结束点参数,指定查找的字符串范围:

    >>> subject = '$$$ Get rich now!!! $$$'
    >>> subject.find('$$$')
    0
    >>> subject.find('$$$',1) # 指定查找的起始点
    20
    >>> subject.find('!!!')
    16
    >>> subject.find('!!!',0,16) # 指定查找的起始点和结束点
    -1

    2、join

    用于连接序列中的元素,被连接的元素都必须是字符串

    >>> dirs = '','usr','bin','env'
    >>> '/'.join(dirs)
    '/usr/bin/env'
    >>> seq = ['1','2','3','4','5']
    >>> '+'.join(seq)
    '1+2+3+4+5'
    >>> seq = [1,2,3,4,5]
    >>> '+'.join(seq)
    Traceback (most recent call last):
      File "<pyshell#15>", line 1, in <module>
        '+'.join(seq)
    TypeError: sequence item 0: expected str instance, int found

    3、lower

    用户返回字符串的小写字母

    >>> 'HELLO WORLD!'.lower()
    'hello world!'

    4、replace

    用于替换字符串中的字符

    >>> 'This is  a test'.replace('is','eez')
                      
    'Theez eez  a test'

    5、split

    用于将字符串分割成序列

    >>> '1+2+3+4+5'.split('+')
                      
    ['1', '2', '3', '4', '5']
    >>> '/usr/bin/env'.split('/')
                      
    ['', 'usr', 'bin', 'env']

    6、strip

    用于去除字符串两侧(不包括内部)空格的字符串

    >>> '          hello world!      '.strip()
                      
    'hello world!'
  • 相关阅读:
    spring的APO
    设计系统测试计划需要参考的项目文档有
    系统测试的策略
    软件测试包括
    简述你在以前的工作中做过哪些事情,比较熟悉什么
    在C/C++中static有什么用途?(请至少说明两种)
    引用与指针有什么区别?
    说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试;
    系统测试的策略
    通过画因果图来写测试用例的步骤为___、___、___、___及把因果图转换为状态图共五个步骤。 利用因果图生成测试用例的基本步骤是:
  • 原文地址:https://www.cnblogs.com/eastonliu/p/9094565.html
Copyright © 2011-2022 走看看