美文网首页
2018-10-08 009 字符串 C

2018-10-08 009 字符串 C

作者: 杜若飞er | 来源:发表于2018-10-08 23:12 被阅读2次

    今天必须把字符串的方法(们)写完…
    其实重要的字符串方法主要集中在昨天那一堆东西,个人感觉今天要写的都不是特别重要?

    大小写转换

    在处理一个长长的字符串时,有时我们需要转换其中字符的大小写形式,这时候就可以调用python中对于大小写转换的函数,如下表:

    函数式子 作用意义
    Str.lower() 转换为小写
    Str.upper() 转换为大写
    Str.capitalize() 首字母大写,其余小写
    Str.title() 首字母大写,其余照旧
    Str.swapcase() 大小写互换

    私以为其中最鸡肋的就是大小写互换这个函数,天知道什么样的需求要求人把一个字符串中所有大写变小写小写变大写……

    字符串翻译和转换

    字符串翻译并不是中英互译——它是字符映射表和字符之间的转换,包括两个函数:
    maketrans():用来生成字符映射表;
    tranlate():按照字符映射表转换字符串并替换其中的字符;
    ↑上面是从书上扒下来的,翻译这个用法大概相当于C++里用A表数字和字符的互相表示,其中Python需要建立一个对照表(256个字符当然也不是自己建),但怎么说着独守一个相对来说陌生的函数,所以放一个例子在这里:

    from string import maketrans
    table = maketrans("1234567","abcdef")
    Str = "1246"
    print( Str.translate(table) )
    

    上面这个例子里,第一行from……就是从string模块中使用了maketrans这个函数,大概就是引入了这个表的意思,而原本由数字构成的Str在经过了翻译(对照表映射)后就变成了字母构成。
    另注意:这个例子在Python3中就运行不出来了,原因应该是from string from maketrans这个写法不再有效,还会抛出一个错误,改成这样就可以咯:

    import string
    #from string import maketrans
    table = "".maketrans("1234567","abcdefg")
    str='125'
    print( str.translate(table) )
    
    字符串排版

    这里的排版是指填充、空白、对齐的方法,废话不多说,上表:

    函数样式 方法解释
    strip([chars]) 删除两边的指定字符(默认空白)
    lstrip([chars]) 删除左边的指定字符(默认空白)
    rstrip([chars]) 删除右边的指定字符(默认空白)
    zfill(width) 从左边填充0知道达到要求宽度
    center(width[,fillchar]) 从两端用指定字符填充,并返回指定宽度的新串
    ljust(width[,fillchar]) 从左端用指定字符填充,并返回指定宽度的新串
    rjust(width[,fillchar]) 从右端用指定字符填充,并返回指定宽度的新串

    本菜鸡对排版一向没什么执念,就记下来而已吧……

    字符串类型判断

    这一系列的函数用来判断构成字符串的字符类型,有的是数字的统计,有的则是字母大小写或者空白字符包含与否的统计;其实这些函数自己用的时候写一下也可以,不过既然人家都写好了,用用也无妨,但这里就不一一列举了,只记录一个比较高级(可能自己写函数不太好写的):
    Str.istitle() #用来判读字符串是否是标题,也就是是不是每个首字母都大写
    之所以把这个单独拉出来,感觉判断是不是标题需要考虑的因素还是蛮多的,自己写函数可能要费一番功夫?
    Point:字符串类型判断函数的返回值都是布尔值。

    字符串开始与结束

    字符串开始与结束检查有点类似Linux中的行预览操作,用来检查某一个字符串是否以规定的字符串开始(或结束)。

    Str.startswith(str)    #判断Str是否以str开头
    Str.endswith(str)    #判断Str是否以str结束
    

    注意,这里举例子用的str也是一个字符串,如果是内容表示的话,改加引号还是要加的。


    多说两句

    本来今天想把字符串格式化一块写了,结果自己看了小半天硬是没头绪,估计明天也一样,所以这里先留一个坑,哪天看明白了,再来还愿;
    所以刨去字符串格式化不说,字符串的方法和操作终于算是写完了,收假之后的第一天,没多长时间写程序,所以很多方法自己也没有大量应用实践(本来挺有时间的其实,在机房敲了好几个小时的C#……),各位老爷多担待吧……

    相关文章

      网友评论

          本文标题:2018-10-08 009 字符串 C

          本文链接:https://www.haomeiwen.com/subject/hnrsaftx.html