zoukankan      html  css  js  c++  java
  • python基础教程-第三章-使用字符串

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

    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) +' ' + ('%+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效率高的多。

      

  • 相关阅读:
    Leetcode: Find Median from Data Stream
    Leetcode: Flip Game II
    Leetcode: Flip Game
    Leetcode: Nim Game
    Leetcode: Word Pattern II
    Leetcode: Word Pattern
    Leetcode: Game of Life
    Leetcode: Alien Dictionary && Summary: Topological Sort
    Leetcode: Unique Word Abbreviation
    Leetcode: Find the Duplicate Number
  • 原文地址:https://www.cnblogs.com/allen-zhang/p/6110793.html
Copyright © 2011-2022 走看看