标签:分割 ng2 填充 其他 line 拼接字符串 you 进制 元组
字符串
    一个个字符组成的有序的序列,是字符的集合
    使用单引号,双引号,三引号引住的字符序列
字符串是不可变的对象
Python3起,字符串就是Unicode类型
字符串的定义 初始化
    举例:
        s1 = ‘string‘
        s2 = "string2"
        s3 = ‘‘‘this‘s a ‘string‘ ‘‘‘
        s4 = ‘hello \n mageedu.com‘
        s5 = r "hello \n mageedu.com"
        s6 = ‘c:\windows\nt‘
        s7 = R "c:\windows\nt"
        s8 = ‘c:\windows\\nt‘
        sql = """select * from user where name=‘tom‘ """
字符串元素访问--下标
    字符串支持使用索引访问
        sql = """select * from user where name=‘tom‘ """
        sql[4] = ‘c‘  #字符串‘c‘
    有序的字符集合,字符序列
        for c in sql:
            print(c)
            print(type(c))  #什么类型?  str
    可迭代
        lst = list(sql)
字符串+连接
    +   ->  str
        将2个字符串连接在一起
        返回一个新的字符串
字符串join连接
    "string".join(iterable)    ->   str
        将可迭代对象连接起来,使用string作为分隔符
        可迭代对象本身元素都是字符串
        返回一个新字符串
     exp:
        lst = [‘1‘,‘2‘,‘3‘]
        print("\"".join(lst))  #分隔符是双引号
        print(" ".join(lst))
        print("\n".join(lst))
        lst = [‘1‘,[‘a‘,‘b‘],‘3‘]
        print(" ".join(lst))
字符串分隔
    分隔字符串的方法分为2类
        split系 #切割
            将字符串按照分隔符分割成若干字符串,并返回列表 list[]
        partition系
            将字符串按照分隔符分隔成2段,返回这2段和分隔符的元组 tuple()
        split(sep= None,maxsplit=-1)    ->  list of strings
            从左到右
            sep指定分隔符。缺省的情况下空白字符串作为分隔符
            maxsplit指定分隔的次数,-1表示遍历整个字符串
        s1 = "I‘m \ta super student."
        s1.split()  ->  ["I‘m", ‘a‘, ‘super‘, ‘student.‘]
        s1.split(‘s‘)   ->  ["I‘m \ta ", ‘uper ‘, ‘tudent.‘]
        s1.split(‘super‘)   ->  ["I‘m \ta ", ‘ student.‘]
        s1.split(‘super ‘)  ->  ["I‘m \ta ", ‘student.‘]
        s1.split(‘ ‘)   ->   ["I‘m", ‘\ta‘, ‘super‘, ‘student.‘]
        s1.split(‘ ‘,maxsplit=2)    ->  ["I‘m", ‘\ta‘, ‘super student.‘]
        s1.split(‘ \t‘,maxsplit=2)  ->  ["I‘m", ‘a super student.‘]
        s1.split(‘ \t‘,2)  ->  ["I‘m", ‘a super student.‘]
        reslit(sep=None,maxsplit=-1)    ->  list of strings
            从右向左
            sep指定分隔字符串,缺省的情况下空白字符串作为分隔符
            maxsplit指定分隔的次数,-1表示遍历整个字符串
        s1 = "I‘m \ta super student."
        s1.rsplit()  ->
        s1.rsplit(‘s‘)   ->
        s1.rsplit(‘super‘)   ->
        s1.rsplit(‘super ‘)  ->
        s1.rsplit(‘ ‘)   ->
        s1.rsplit(‘ ‘,maxsplit=2)    ->
        s1.rsplit(‘ \t‘,maxsplit=2)  ->
        s1.rsplit(‘ \t‘,2)  ->
字符串分隔
    splitlines([keepends])  ->  list of strings
        按照行来分切字符串
        keepends指的是是否保留分隔符
        行分隔符包括\n、\r\n、\r等
        exp:
            ‘ab c\n\nde fg\rkl\r\b‘.splitlines()
            ‘ab c\n\nde fg\rkl\r\b‘.splitlines(True)
            s1 = "I‘m a super student.
            You‘re a super teacher."
            print(s1)
            print(s1.splitlines())
            print(s1.splitlines(True))
字符串分隔***
    partition(sep)  ->  (head,sep,tail)
        从左到右,遇到分隔符就把字符串分隔成两部分,返回 头、分隔符、尾三部分的三元组;
        如果没有找到分隔符,就返回 头,2个空元素的三元组
        sep分隔字符串,必须指定
        exp
            s1 = "I‘m a super student"
            s1.partition(‘s‘)
                ("I‘m a ", ‘s‘, ‘uper student‘)
            s1.partition(‘stu‘)
                ("I‘m a super ", ‘stu‘, ‘dent‘)
            s1.partition(‘‘)
                报错 ValueError: empty separator
            s1.partition(‘abc‘)
                ("I‘m a super student", ‘‘, ‘‘)
    rpartition(sep) ->  (head,sep,tail)
        从右到左,遇到分隔符就把字符串分隔成两部分,返回 头、分隔符、尾三部分的三元组;
        如果没有找到分隔符,就返回 头,2个空元素的三元组
字符串大小写
    upper()
        全大写
    lower()
        全小写
    大小写,做判断的时候用
    swapcase()
        交互大小写
 字符串排版
    title() ->  str
        标题的每个单词都大写
    capitalize()    ->  str
        首个单词大写
     center(width,[,fillchar])  ->  str
        width 打印宽带
        fillchar 填充的字符
     zfill(width)   ->  str
        width 打印宽带,居右,左边用0填充
     ljust(width,[,fillchar])   ->  str 左对齐
     rjust(width,[,fillchar])   ->  str 右对齐
     中文用的少,了解下
字符串修改***
    replace(old,new[,count])    -> str
        字符串中找到匹配替换为新子串,返回新字符串
        count表示替换几次,不指定就是全部替换
    exp:
        ‘www.baidu.com‘.replace(‘w‘,‘g‘)
        ‘www.baidu.com‘.replace(‘w‘,‘g‘,2)
        ‘www.baidu.com‘.replace(‘w‘,‘g‘,3)
        ‘www.baidu.com‘.replace(‘ww‘,‘g‘,2)
        ‘www.baidu.com‘.replace(‘w‘,‘python‘,2)
字符串修改***
    strip([chars])  ->  str
        从字符串两端去除指定的字符集chars中的所有字符
        如果chars没有指定,去除两端的空白字符
    exp:
        s = "\r \n \t Hello Python \n \t"
        s.strip()
            ‘Hello Python‘
        s = "I am very very very sorry"
        s.strip(‘Iy‘)
        s.strip(‘Iy ‘)
    lstrip([chars])  ->  str
        从左开始
    lstrip([chars])  ->  str
        从右开始
字符串查找*
    find(sub,[start[,end]])     ->  int
        在指定的区间[start,end],从左到右,查找子串sub,找到返回索引,没找到返回-1
    rfind(sub,[start[,end]])     ->  int
        在指定的区间[start,end],从右到左,查找子串sub,找到返回索引,没找到返回-1
        exp:
            s = "I am very very very sorry."
            s.find(‘very‘)
                5
            s.find(‘very‘,5)
                5
            s.find(‘very‘,6,13)
                -1  #未找到
            s.rfind(‘very‘,10)
            s.rfind(‘very‘,10,15)
            s.rfind(‘very‘,-10,-1)
字符串查找*
    index(sub,start[,end])  ->  int
        在指定的区间[start,end],从左到右,查找子串sub,找到返回索引,没找到抛出异常ValueError
    rindex(sub,start[,end])  ->  int
        在指定的区间[start,end],从右到左,查找子串sub,找到返回索引,没找到抛出异常ValueError
        exp:
            s = "I am very very very sorry."
            s.index(‘very‘)
                5
            s.index(‘very‘,5)
                5
            s.index(‘very‘,6,13)
                -1  #未找到
            s.index(‘very‘,10)
            s.index(‘very‘,10,15)
            s.index(‘very‘,-10,-1)
    时间复杂度O(n)
        index\find\count都是O(n)
        随着字符串规模的增大,而效率下降
    len(string)
        返回字符串的长度,即字符的个数
    count(sub[,start[,end]])    -> int
        在指定区间[start,end],从左到右,统计子串sub出现的个数
        exp:
            s = "I am very very very sorry."
            s.count(‘very‘)
                3
            s.count(‘very‘,5)
                3
            s.count(‘very‘,10,14)
字符串判断***
    endswith(suffix,[,start[,end]])     ->  bool
        在指定的区间[start,end],字符串石峰有suffix结尾
    startswith(suffix,[,start[,end]])     ->  bool
        在指定的区间[start,end],字符串石峰有suffix开头
        exp:
            s = "I am very very very sorry."
            s.startswith(‘very‘)
                True
            s.startswith(‘very‘,5)
                True
            s.startswith(‘very‘,5,9)
                True
            s.endswith(‘very‘,5,9)
                True
            s.endswith(‘very‘,5,-1)
                False
            s.endswith(‘very‘,5,100)
                False
字符串判断 is 系列
    isalnum()   ->  bool      是否是字母和数字的组成
    isalpha()是否是字母
    isdecimal()是否只包含十进制数字
    isdigit()是否全部数字(0-9)
    isidentifier()是不是字母和下划线开头,其他都是字母,数字,下划线
    islower()是否都是小写
    isupper()是否都是大写
    isspace()是否只包含空白字符
字符串格式化
    字符串的格式化是一种拼接字符串输出样式的手段,更灵活方便
        join拼接只能使用分隔符,且要求被拼接的是可迭代对象
        + 拼接字符串还算方便,但是非字符串需要先转化为字符串才能拼接
在2.5版本之前,只能使用print style 风格的printf函数
        print-style formatting,来自C语言的printf函数
        格式要求
            占位符:使用%和格式字符组成,如 %s,%d等
                s调用str,r会调用repr(),所有对象都可以被这两个转换
            占位符中还可以插入修饰字符,例如%03d表示打印3个位置,不够前面补零
            format %values 格式化字符串和被格式的值直接使用%分隔
            values只能是一个对象,或是一个和格式字符串占位符数目相等的元组,或一个字典
        prinf-style formatting
        "I am %03d" %(20,)
             ‘I am 020‘
        ‘I like %s.‘%‘Python‘
            ‘I like Python.‘
        ‘‘%3.2f%%,0x%x,0x%02x‘%(89.7654,10,15)
            ‘89.77%,0xa,0x0f‘
        ‘%06.2f%%,0x%x,0x%02x‘%(89.7654,10,15)
            ‘089.77%,0xa,0x0f‘
        "I am %5d" %(20,)
            ‘I am    20‘
        "I am %-5d" %(20,)
            ‘I am 20   ‘
字符串格式化***
    format函数格式字符串语法----Python鼓励使用
        "{}{xxx}".format(*args,**kwargs)    ->  str
        arg是位置参数,是一个元组
        kwargs是关键字参数,是一个字典
        花括号表示占位符
        {}表示按照顺序匹配位置参数,{n}表示取位置参数索引为n的值
        {xxx}表示在关键字参数中搜索名称一致的
        {{}} 表示打印花括号
    位置参数
        "{}:{}".format(‘192.168.1.100‘,‘8888‘),这就是按照位置顺序用位置参数替换前面的格式字符串的占位符
             ‘192.168.1.100:8888‘
    关键字参数或命名参数
        "{server}{1}:{0}".format(8888,‘192.168.1.100‘,server=‘Web Server Info:‘)
            ‘Web Server Info:192.168.1.100:8888‘
        位置参数按照序号匹配,关键字参数按照名称匹配
    访问元素
        "{0[0]}.{0[1]}".format((‘mageedu‘,‘com‘))
            ‘mageedu.com‘
    对象属性访问
        from collections import namedtuple
        Point = namedtuple(‘Point‘,‘x y‘)
        p = Point(4,5)
        "{{{0.x},{0.y}}}".format(p)
             ‘{4,5}‘
    对齐
        ‘{0}*{1}={2:<2}‘.format(3,2,2*3)
             ‘3*2=6 ‘
        ‘{0}*{1}={2:<02}‘.format(3,2,2*3)
            ‘3*2=60‘
        ‘{0}*{1}={2:>02}‘.format(3,2,2*3)
            ‘3*2=06‘
        ‘{:^30}‘.format(‘centerd‘)
            ‘           centerd            ‘
        ‘{:#^30}‘.format(‘centerd‘)
            ‘###########centerd############‘
        进制
            "int:{0:d};hex:{0:x};oct:{0:o};bin:{0:b}".format(42)
                ‘int:42;hex:2a;oct:52;bin:101010‘
            "int:{0:d};hex:{0:#x};oct:{0:#o};bin:{0:#b}".format(42)
                ‘int:42;hex:0x2a;oct:0o52;bin:0b101010‘
            octes = [192,168,0,1]
            ‘{:02x}{:02x}{:02x}{:02x}‘.format(*octes)  * 把每个元素分解
                ‘c0a80001‘
标签:分割 ng2 填充 其他 line 拼接字符串 you 进制 元组
原文地址:https://www.cnblogs.com/Felix-DoubleKing/p/9648844.html