2016.07.09-10 字符串方法

字符串(str)

    unicode序列
    字符串是不可变的

    字符串的定义:支持下标操作,支持切片操作,支持解包、封包操作。
        s = ‘magedu‘

    字符串的方法:
        字符串连接:
            join:
                join(...)
                    S.join(iterable) -> str

                使用S拼接一个可迭代对象的每个字符元素(只能拼接字符元素),返回一个字符串,S为一个连接符。
                >>> lst = [‘I‘, ‘Love‘, ‘You‘]
                >>> ‘ ‘.join(lst)    #使用空格拼接字符串
                ‘I Love You‘
                >>> ‘,‘.join(lst)    #使用‘,‘拼接字符串
                ‘I,Love,You‘
                >>> 

        字符串分割:
            split:
                split(...) method of builtins.str instance
                        S.split(sep=None, maxsplit=-1) -> list of strings
                从左到右,通过分隔符进行分隔,sep为分隔符,默认为‘ ‘,分割符可以是单个字符,也可以是字符串,但不能是正则表达式,可以使用指定分隔符,对字符串进行分隔,第二个参数为分隔次数,-1(默认值)为分隔所有。        

                >>> s
                ‘my name is ZJ‘
                >>> s.split()
                [‘my‘, ‘name‘, ‘is‘, ‘ZJ‘]
                >>> s.split(‘ ‘,1)
                [‘my‘, ‘name is ZJ‘]
                >>> s.split(‘ ‘,2)
                [‘my‘, ‘name‘, ‘is ZJ‘]
                >>> s.split(‘ ‘,-1)
                [‘my‘, ‘name‘, ‘is‘, ‘ZJ‘]

                >>> f = open(‘/etc/passwd‘,‘r‘)
                >>> a = f.readlines()
                >>> for i in a:
                ...     UserName, *_, bash = i.split(‘:‘)
                ...     print(UserName,bash)
                ...
                root /bin/bash

                bin /sbin/nologin

                daemon /sbin/nologin

                adm /sbin/nologin

                lp /sbin/nologin

            rsplit:
                rsplit(...) method of builtins.str instance
                    S.rsplit(sep=None, maxsplit=-1) -> list of strings

                跟split方法类似,但是rsplit从右到左,通过分隔符进行分隔,sep为分隔符,默认为‘ ‘,可以使用指定分隔符,对字符串进行分隔,第二个参数为分隔次数,-1(默认值)为分隔所有。

                >>> s
                ‘my name is ZJ‘
                >>> s.rsplit()
                [‘my‘, ‘name‘, ‘is‘, ‘ZJ‘]
                >>> s.rs
                s.rsplit(  s.rstrip(
                >>> s.rsplit(‘ ‘, 1)
                [‘my name is‘, ‘ZJ‘]
                >>> s.rsplit(‘ ‘, 2)
                [‘my name‘, ‘is‘, ‘ZJ‘]
                >>> s.rsplit(‘ ‘, -1)
                [‘my‘, ‘name‘, ‘is‘, ‘ZJ‘]
                >>> *_, name = s.rsplit(‘ ‘, 1)
                >>> name
                ‘ZJ‘
                >>> 

            splitlines:
                splitlines(...)
                    S.splitlines([keepends]) -> list of strings
                按行分隔,返回一个字符串元素的列表,keepends默认为False,不保留换行符,为True表示保留换行符
                >>> test = ‘‘‘my name is ZJ
                ... I love Python
                ... I want coding my program
                ... ‘‘‘
                >>> test
                ‘my name is ZJ\nI love Python\nI want coding my program\n‘
                >>> test.splitlines()
                [‘my name is ZJ‘, ‘I love Python‘, ‘I want coding my program‘]
                >>> test.splitlines(True)
                [‘my name is ZJ\n‘, ‘I love Python\n‘, ‘I want coding my program\n‘]
                >>>
            partition:
                partition(...)
                    S.partition(sep) -> (head, sep, tail)
                对字符串进行分隔,sep为分隔符,返回一个三个元素的元组。
                >>> line = ‘url:http://www.baidu.com‘
                >>> line.partition(‘:‘)
                (‘url‘, ‘:‘, ‘http://www.baidu.com‘)
            rpartition:
                rpartition(...)
                    S.rpartition(sep) -> (head, sep, tail)
                对字符串进行分隔,从右往左进行分隔,sep为分隔符,返回一个三个元素的元组。
                >>> line.rpartition(‘:‘)
                (‘url:http‘, ‘:‘, ‘//www.baidu.com‘)
                >>>
        字符串修改(自然语言的修改):
            capitalize:
                capitalize(...)
                    S.capitalize() -> str
                对字符串行首进行处理,首字母大写
                >>> s.capitalize()
                ‘My name is zj‘
                >>> 

            title:
                title(...) method of builtins.str instance
                    S.title() -> str
                将字符串的每个单词的首字母变成大写。
                >>> s.title()
                ‘My Name Is Zj‘
                >>>
            lower:
                lower(...) method of builtins.str instance
                    S.lower() -> str
                将字符串中所有的大写字母变成小写。
                >>> s.lower()
                ‘my name is zj‘
                >>>
            upper:
                upper(...) method of builtins.str instance
                    S.upper() -> str
                将字符串的所有小写字母都变成大写。
                >>> s.upper()
                ‘MY NAME IS ZJ‘
                >>>
            swapcase:
                swapcase(...) method of builtins.str instance
                    S.swapcase() -> str
                将字符串中的小写字母变成大写,大写字母变成小写。
                ‘my name is ZJ‘
                >>> s1 = s.title()
                >>> s1
                ‘My Name Is Zj‘
                >>> s1.swapcase()
                ‘mY nAME iS zJ‘

            center:
                center(...) method of builtins.str instance
                    S.center(width[, fillchar]) -> str
                将字符串进行居中输出,width,指定字符串宽度,fillchar为填充符,默认为空格,可选参数。
                >>> s.center(50)
                ‘                  my name is ZJ                   ‘
                >>> s.center(50,‘#‘)
                ‘##################my name is ZJ###################‘
                >>>

            ljust:
                ljust(...) method of builtins.str instance
                    S.ljust(width[, fillchar]) -> str
                对字符串进行右填充,l为left,有效字符位于整个字符串的左边。
                >>> s.ljust(30)
                ‘my name is ZJ                 ‘
                >>> s.ljust(30, ‘#‘)
                ‘my name is ZJ#################‘
                >>>
            rjust:
                rjust(...) method of builtins.str instance
                    S.rjust(width[, fillchar]) -> str
                对字符串进行左填充,r为right,有效字符位于整个字符串的右边。
                >>> s.rjust(30)
                ‘                 my name is ZJ‘
                >>> s.rjust(30, ‘#‘)
                ‘#################my name is ZJ‘
                >>>
            zfill:
                zfill(...) method of builtins.str instance
                    S.zfill(width) -> str
                使用0对字符串左侧进行填充,width为指定字符宽度。
                >>> s.zfill(30)
                ‘00000000000000000my name is ZJ‘
                >>> 

            strip:
                strip(...) method of builtins.str instance
                    S.strip([chars]) -> str
                默认为删除字符串两侧的空白(‘ ‘、\n、-t),指定参数chars时为删除两侧指定的的字符,不指定chars为默认删除空白。
                >>> a
                ‘ \n  zhang san li si      \t   \n ‘
                >>> a.strip()
                ‘zhang san li si‘
                >>>
                >>> a.strip(‘!‘)
                ‘this is !!!a !!!test‘
                >>>

            rstrip:
                rstrip(...)
                    S.rstrip([chars]) -> str
                默认为删除字符串右侧的空白(‘ ‘、\n、-t),指定参数chars时为删除右侧指定的的字符,不指定chars为默认删除空白。
                >>> a = ‘ \n  zhang san li si      \t   \n ‘
                >>> a.rstrip()
                ‘ \n  zhang san li si‘
                >>> a = ‘!!!!!this is !!!a !!!test!!!!!!!‘
                >>> a.rstrip(‘!‘)
                ‘!!!!!this is !!!a !!!test‘

            lstrip:
                lstrip(...)
                    S.lstrip([chars]) -> str
                默认为删除字符串左侧的空白(‘ ‘、\n、-t),指定参数chars时为删除左侧指定的的字符,不指定chars为默认删除空白。
                >>> a = ‘ \n  zhang san li si      \t   \n ‘
                >>> a.lstrip()
                ‘zhang san li si      \t   \n ‘
                >>> a = ‘!!!!!this is !!!a !!!test!!!!!!!‘
                >>> a.lstrip(‘!‘)
                ‘this is !!!a !!!test!!!!!!!‘

        字符串判断:
            startswith:
                startswith(...)
                    S.startswith(prefix[, start[, end]]) -> bool
                判断字首是否为指定字符,prefix为指定的字首字符,默认从字符串第一位匹配,[,start[, end]]为可选参数,值为索引下标,表示指定匹配区域,返回一个boo类型。
                >>> a = ‘###test!!!!‘
                >>> a.startswith(‘#‘)
                True
                >>> a.startswith(‘t‘, 3, 5)
                True
                >>> a.startswith(‘#‘, 3, 5)
                False
                >>> a.startswith(‘#‘, -4, -1)
                False
                >>> a.startswith(‘!‘, -4)
                True
                >>>
            endstwith:
                endswith(...)
                    S.endswith(suffix[, start[, end]]) -> bool
                判断字尾是否为指定字符,suffix为指定的字尾字符,默认从字符串最后一位匹配,[,start[, end]]为可选参数,值为索引下标,表示指定匹配区域,返回一个boo类型。
                >>> a
                ‘###test!!!!‘
                >>> a.endswith(‘!‘)
                True
                >>> a.endswith(‘t‘, 4, 6)
                False
                >>> a[4:6]
                ‘es‘
                >>> a[4:7]
                ‘est‘
                >>> a.endswith(‘t‘, 4, 7)
                True
                >>> a.endswith(‘!‘, 4)
                True
                >>>
        字符串查找/替换:
            count:
                count(...)
                    S.count(sub[, start[, end]]) -> int
                跟list的count用法一样,统计字符串中指定字符的个数,返回一个整数类型,sub为指定字符,[, start[, end]]为可选参数,值为索引下标,指定统计的区域。
                >>> a = ‘aaabbbaaabbbcccaaa‘
                >>> a.count(‘a‘)
                9
                >>> a.count(‘a‘, 4)
                6
                >>> a.count(‘a‘, 4, 10)
                3
                >>>
            find:
                find(...)
                    S.find(sub[, start[, end]]) -> int
                查找指定字符在字符串中第一次出现的的位置(从左往右查找),返回一个整形(索引下标),sub为指定字符,[, start[,为可选参数,值为索引下标,指定查找区域,如果字符串中没有指定的字符,则返回-1。

            rfind:
                rfind(...)
                    S.rfind(sub[, start[, end]]) -> int
                查找指定字符在字符串中第一次出现的的位置(从右往左查找),返回一个整形(索引下标),sub为指定字符,[, start[,为可选参数,值为索引下标,指定查找区域,如果字符串中没有指定的字符,则返回-1。
                >>> a
                ‘aaabbbaaabbbcccaaa‘
                >>> a.rfind(‘b‘)
                11
                >>> a.rfind(‘bbb‘)
                9
                >>> a.rfind(‘bbb‘, 0, 10)
                3
                >>> a.rfind(‘bbb‘, 0, 20)
                9
                >>> a.rfind(‘bbb‘, 0, 1)
                -1
                >>>
            index:
                index(...)
                    S.index(sub[, start[, end]]) -> int
                用法与find一样,唯一与find的区别是,在找不到指定字符时find方法会返回一个-1,而index则会抛出一个ValueError异常。
                >>> a
                ‘aaabbbaaabbbcccaaa‘
                >>> a.index(‘b‘)
                3
                >>> a.index(‘bbb‘)
                3
                >>> a.index(‘bbb‘, 4, 10)
                Traceback (most recent call last):
                  File "<stdin>", line 1, in <module>
                ValueError: substring not found
                >>> a.index(‘bbb‘, 4, 20)
                9
            rindex:
                rindex(...)
                    S.rindex(sub[, start[, end]]) -> int
                用法与rfind一样,唯一与rfind的区别是,在找不到指定字符时rfind方法会返回一个-1,而rindex则会抛出一个ValueError异常。
                >>> a
                ‘aaabbbaaabbbcccaaa‘
                >>> a.rindex(‘b‘)
                11
                >>> a.rindex(‘bbb‘)
                9
                >>> a.rindex(‘bbb‘, 4, 10)
                Traceback (most recent call last):
                  File "<stdin>", line 1, in <module>
                ValueError: substring not found
                >>> a.rindex(‘bbb‘, 4, 20)
                9
                >>> a.rindex(‘b‘, 4, 20)
                11
                >>>
            replace:
                replace(...)
                    S.replace(old, new[, count]) -> str
                替换字符串中的指定字符,返回替换完成后的新字符串,不会对原字符串进行修改,old为指定替换的字符,new为替换后的字符,count为可选参数,默认全字符串匹配替换,指定count为从左到右替换的次数。
                >>> a
                ‘aaabbbaaabbbcccaaa‘
                >>> a.replace(‘aaa‘, ‘123‘)
                ‘123bbb123bbbccc123‘
                >>> a.replace(‘aaa‘, ‘123‘ , 1)
                ‘123bbbaaabbbcccaaa‘
                >>> a.replace(‘aaa‘, ‘123‘ , 2)
                ‘123bbb123bbbcccaaa‘
                >>> 
时间: 2024-08-13 00:43:40

2016.07.09-10 字符串方法的相关文章

07 09&amp;10

0709: 排名还是不高,毕竟没切出来题. 第一题dalao: 要求你做一个三维数点,只回答最终有多少个点对的状态是完全小于(可比?)的.(n<=2000000) 特殊限制是三维都是随机排列. 陈立杰在APIO讲过,当时我翘了...... 在考场上努力卡常,结果卡常失败,应该拿到60,评测炸了,中间奇怪的RE,所以只有40. 正解是考虑一对点对(X,Y),由于有三维的对应大小,所以对应的大小关系只有 (2,1)(1,2)(3,0)(0,3)这几种, 我们要求的是所有(3,0)(0,3)的点对数目

2016.07.09

javascript 中 offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变 clientWidth.offsetWidth.clientHeight区别 IE6.0.FF1.06+: offsetWidth = width + padding + border offsetHeight = height + padding + border IE5.0/5.5: offsetWidth = width offsetHeight = height offsetwid

2016/07/11 PHP接口的介绍与实现

接口定义了实现某种服务的一般规范,声明了所需的函数和常量,但不指定如何实现.之所以不给出实现的细节,是因为不同的实体可能需要用不同的方式来实现公共的方法定义.关键是要建立必须实现的一组一般原则,只有满足了这些原则才能说实现了这个接口. 接口中不定义类成员!类成员的定义完全交给实现类来完成. 先来看一个简单的例子,有个全面的认识: 01 <?php 02 interface Fruit 03 { 04     const MAX_WEIGHT = 5;   //此处不用声明,就是一个静态常量 05

javascript的字符串方法

JavaScript的字符串方法 indexOf()  在指定字符串中寻找一个字符或者子串,返回一个子串后字符所在的索引 lastIndexOf()  在指定字符串中从后往前查找一个字符或者子串 var zp = "chinancepuzp"; console.log(zp.indexOf("c"));       //输出0 console.log(zp.indexOf("c",1));     //从第1个位置向后开始搜索 返回6 conso

前端字符串方法汇总

字符串的处理方法我们用的是最多的,恐怕也是 忘的最快的,复习基础知识 是我最喜欢的,基础运用的熟练自我觉得是最牛的一件事情,一个东西每个人有每个人的想法,接下来是自己总结的字符串方法,以后还会增加. /*        string的基本功    */    //(1): length属性.判断长度    var str = 'rere';    var str1 = str.length;    console.log(str1);    //(2): replace属性.处理字符串替换参数 

js字符串方法、数组方法整理

push 向数组末尾添加一项 返回值为数组的长度: pop 删除数组最后一项: unshift 向数组开头增加一项: shift 删除数组第一项: splice 删除数组中的值:1 splice(n,m)从n开始 删除m个:返回下标n~m : 2 splic(n) 从n开始删除到末尾: 3 splice(n,m,x)从n开始删除m个,用x替换: 4 splice(n,0,m) 把x增加到n前面: 5 splice(arr.length,0,n) 向末尾加n 数组的截取和拼接 slice(n,m)

常用数组、字符串方法总结&amp;获取元素、DOM操作

字符串的方法.返回值.是否改变原字符串:1 charAt() 方法可返回指定位置的字符. 不改变原始字符串 JavaScript并没有一种有别于字符串类型的字符数据类型,返回的字符是长度为 1 的字符串: 注释:字符串中第一个字符的下标是 0.如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串. 2 concat() 方法用于连接两个或多个字符串并返回连接后的字符串 不改变原始字符串 语法:stringObject.concat(stringX,str

[python基础(二)]字符串方法

本文介绍了字符串两种重要的使用方式:字符串格式化和字符串方法.一.字符串格式化 二.字符串方法 常用的字符串方法有:find,join,lower,replace,split,strip,translate. 具体的代码见下面 py文件# -*- coding: utf-8 -*- #字符串格式化 #1.简单转换print '%s plus %s equals %s'%(1,2,3)from math import piprint 'Pi:%f...'%pi #2.字段宽度和精度print '%

张珺 2015/07/09 个人文档

姓名 张珺 日期 中蓝公寓蓝芳园D507,2015/07/09 主要工作及心得 在今天的设计工作中, 我完成了操作者界面中12个界面的设计工作.并参与了部分代码的合并工作. 通过今天对界面的设计工作,我学会了Java中界面设计的方法,以及相应控件的使用方式. 遇到的问题 由于之前对于Java中界面设计并没有深入学习,对于界面之间的跳转和空间的使用也不太了解,设计时在这方面遇到了一些问题. 解决方法 因为经理.提供者等界面的编写工作已由其他同学完成,因此,遇到问题的大部分问题都可以在同伴的帮助下解

利用 Linux 系统生成随机密码的10种方法

通常情况下大家生成密码都好困惑,一来复杂程度不够会不安全,复杂程度够了又不能手动随便敲击键盘打出一同字符(但通常情况下这些字符是有规律的),使用1password 或者 keepass 这种软件生成也可以,不过貌似1password 要收费,既然这样我们就玩一下好玩的用 linux 来生成随机密码玩玩吧; Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,