本章将会介绍如何使用字符串何世华其他的值(如打印特殊格式的字符串),并简单了解下利用字符串的分割、联接、搜索等方法能做些什么

3.1 基本字符串操作

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

3.2 字符串格式化:精简版

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

    在%的左侧防止一个字符串(格式化字符串),而右侧则放置希望格式化的值。可以使用一个值,如一个字符串或者数字,也可以使用多个值的元组或者下一张将会讨论的字典,这部分将在下一章进行讨论。一般情况下使用元组:

      >>>format = 'hello ,%s .%s enough for ya>'

    >>>values = ('world' ,'Hot')

    >>>hello.world.hot enough for ya?

    如果要格式化实数(浮点数),可以使用f说明符类型,同事提供所需要的精度:一个句点再加上希望保留的小数位数。因为格式化说明符总是以表示类型的字符结束,所以精度应该放在类型字符前面:

    >>>format = 'pi with three decimals:%.3f'

    >>>from math import pi

    >>>print(from %pi)

    >>>pi with three decimals:3.142

3.3 字符串格式化:完整版

    格式化操作符的右操作数可以是任何东西,如果是元组或者映射类型(如字典),那么字符串格式化将会有所不同。我们尚未涉及映射,再次先了解一下元组。

    如果右操作数是元组的话,则其中的每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符

3.3.2 字符宽度和精度

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

    这两个参数都是整数(首先是字段的宽度,然后是精度),通过点号(.)来分隔,虽然两个都是可选参数,单如果只给出精度,就必须包含点号

    >>>'%10f %pi    #字段宽度10

    >>>' 3.141593'

    >>>'%10.2f' %pi  #字段宽度10.精度2

    >>>'       3.14'

    >>>'%.5s' %'Guido van Rossum'

    >>>'Guido'

3.3.3 符号、对齐和0填充

    在字段宽度和精度值之前还可以防止一个‘标表’,该标表可以是零,加号,减号或者空格,零表示数字将会用0进行填充。

    >>>%010.2f' %pi

    '0000003.14'

    减号(-)用来左对齐数值:

    >>>'%s-10.2f'%pi

    >>>'3.14      '

    可以看到,在数字的右侧多数了额外的空格

    而空白(‘ ’)意味着在整数前加上空格,这在需要对其正负数时很有用:

    >>>print (('%+5d'% 10) +'\n' + ('%+5d'% -10))

    >>>+10

    >>>-10

3.4 字符串方法

    前面几节已经介绍了很多列表的方法,字符串的方法还要丰富很多,这是因为字符串从string模块中继承了很多方法,而在早起版本的python中,这些方法都作为函数出现的。

    strting.degits:包含数字0-9的字符串

    string.letters:包含所有字母(大写或者小写)的字符串

    string.lowercase:包含所有小写字母的字符串

    string.printable:包含所有可打印字符的字符串

    string.punctuation:包含所有标点的字符串

    string.uppercase:包含所有大写字母的字符串

3.4.1 find

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

    >>>'with a moo-moo here,and a moo-moo three'.find('moo')

    >>>7

3.4.2 join

    join方法是非常重要的字符串方法,他是split方法的逆袭,用来在队列中添加元素:

    >>>seq= ['1','2','3','4','5']

    >>>sep = '+'

    >>>sep.join(seq)  #连接字符串列表

    >>>'1+2+3+4+5'

    需要添加的队列元素必须是字符串。

3.4.3 lower

    lower方法返回字符串的小写字母版。

    >>>'Trondheim Hammer Dance'.lower()

    >>>'trondheim hammer dance'

    如果想要编写‘不区分大小写’的代码的话,那么这个方法就派上用场了----代码会忽略大小写的状态。例如,如果想再列表中查找一个用户名是否存在:列表包含字符串‘Gumby’,而用户输入的是‘’gumby‘’就找不到了。

  扩展部分:

    和lower方法相关的title方法,它会将字符串转换为标题---也就是所有的单词的首字母大写,其他字母小写。

3.4.4 replace

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

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

    >>>'This ezz a test'

3.4.5 split

    这是一个非常重要的字符串方法,它是join的逆方法,用来将字符串分割成序列。

    >>>'1,2,3,4,5'.split()

    >>>['1,2,3,4,5']

    注意:如果不提供任何分隔符,程序会吧所有空格作为分隔符(空格,制表,换行等)。

3.4.6 strip

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

    >>>‘        internal whitespace is kept     ’.strip()

    >>>'internal whitespace is kept'

3.4.7 translate

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

  

python基础教程-第三章-使用字符串的更多相关文章

  1. Objective-C 基础教程第三章,面向对象编程基础知

    目录 Objective-C 基础教程第三章,面向对象编程基础知 0x00 前言 0x01 间接(indirection) 0x02 面向对象编程中使用间接 面向过程编程 面向对象编程 0x03 OC ...

  2. 2018-06-20 中文代码示例视频演示Python入门教程第三章 简介Python

    知乎原链 Python 3.6.5官方入门教程中示例代码汉化后演示 对应在线文档: 3. An Informal Introduction to Python 不知如何合集, 请指教. 中文代码示例P ...

  3. python基础教程第3章——字符串

    1.字符串格式化 字符串格式化操作符%+转换标志+最小字段宽度+点后跟精度值+转换类型 String模块提供另外一种格式化方式 from string import Template s=Templa ...

  4. python基础教程(三)

    序列概览 Python 包含6 种内建的序列,这里重点讨论最常用的两种类型:列表和元组. 列表与元组的主要区别在于,列表可以修改,元组则不能.也就是说如果要根据要求来添加元素,那么列表可以会更好用:而 ...

  5. Python基础教程笔记 第二章

    本章的名字虽然叫列表和元组,但是本章讲的最多的是列表,元祖指讲了很少的一部分.因为元组和列表很多方面都是一样的. 列表和元组的区别:列表可以被修改,元祖不可以被修改. python包含的6种内建序列: ...

  6. Python基础教程笔记 第一章

    /  表示整除,当导入_future_模块中的version时,/ 表示正常的的除法, 此时可用//表示整除,不论数字是整型还是浮点型,都可以用//表示整除. ** 表示幂次方  例如 2**3    ...

  7. python基础教程第4章——字典

    1.映射(mapping):通过名字引用值的数据结构.字典是Python中唯一内建的映射类型,字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)里.键可以是数字.字符串甚至是元组. 2.字 ...

  8. python基础教程第5章——条件循环和其他语句

    1.语句块是在条件为真(条件语句)时执行或者执行多次(循环语句)的一组语句.在代码前放置空格来缩进语句即可穿件语句块.块中的每行都应该缩进同样的量.在Phyton中冒号(:)用来标识语句块的开始,块中 ...

  9. python基础教程第2章——列表与元组笔记

    1.序列是Python中最基本的数据结构.序列中的每个元素被分配一个序列号——元素的位置,也称索引,第1个索引是0,第2为1,以此类推.序列中的最后1个元素为-1,倒数第2个位-2. python中有 ...

随机推荐

  1. Python3基础 访问列表 小于指定索引值的所有元素

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  2. 25.redis集群搭建笔记

    ###Redis集群### 0.准备 软件: redis-3.0.0.gem redis-3.0.0.tar.gz#源码   1.安装ruby环境 redis基于ruby槽位计算,hash算法技术,k ...

  3. python走起之第八话

    1. Socket介绍 概念 A network socket is an endpoint of a connection across a computer network. Today, mos ...

  4. 学习PHP 逛的几个网站。

    PHP 第一社区 http://www.php1.cn/ 51cto php开发 http://developer.51cto.com/col/1441/ phphub https://phphub. ...

  5. font-weight -- 定义字体的粗细

    font-weight -- 定义字体的粗细 取值: normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 70 ...

  6. 【算法】Hough变换

    终于看懂点了霍夫变换,以下内容来源为吉大的硕士论文,作者王阳阳 上图引用自 http://www.cnblogs.com/Ponys/p/3146753.html

  7. 微信微信JS-SDK 6.0.2 填坑笔记

    0.为什么以前不需要配置这么麻烦就可以修改分享description 等信息,但是现在不行了. 因为6.0.2版本之前没有做权限验证,所以config都是ok,但这并不意味着你config中的签名是O ...

  8. HTML5 十大新特性(十)——Web Socket

    webSocket是H5新加的一个协议,为了解决http协议的request.response一一对应和它自身的被动性,以及ajax轮询等问题.一方可以发送多条信息,连接不中断,永久连接,但也导致了服 ...

  9. Excel数据批量导入到数据库2

    1.导包(共3个) 2.jsp <s:form action="ReadExcel.action" method="post" enctype=" ...

  10. Python正则式的基本用法

    Python正则式的基本用法 1.1基本规则 1.2重复 1.2.1最小匹配与精确匹配 1.3前向界定与后向界定 1.4组的基本知识 2.re模块的基本函数 2.1使用compile加速 2.2 ma ...