• 05.字符串


        # 拼接字符串
        s1 = '121'
        s2 = '1sda'
        s3 = 213
        print(s1 + '---' + s2)  # 121---1sda
        # print(s1 + s2 + s3)  # TypeError: can only concatenate str (not "int") to str
        print(s1 + s2 + str(s3))  # 1211sda213
        print(s1 + '
    ' + s2)
        # 121
        # 1sda
        s4 = '人123'
        print(len(s4))  # 4
        # python中,数字,英文,小数点,下划线,空格占一个字节,一个汉字可能占2~4个字节,
        # 汉字在gbk/gb2312占2个字节,utf-8/unicode占3个字节(或4个字节)
        print(len(''.encode('utf-8')))  # 3
        print(len(''.encode('utf-8')))  # 3
        print(len(''.encode('gbk')))  # 2
        print(len(''.encode('gbk')))  # 2

    截取字符串:

     # 截取字符串
        str1 = '123456'
        s1 = str1[1]
        s2 = str1[3:]
        s3 = str1[:3]
        s4 = str1[1:3]
        print(s1 + ' ' + s2 + ' ' + s3 + ' ' + s4)  # 2 456 123 23
        try:
            print(str1[6])
        except IndexError:
            print('str[6]不存在')  # str[6]不存在

    分割,合并字符串:

        # 分割,合并字符串
        s1 = '1,2,3.4-5'
        # split(sep,maxsplit) 分割
        # sep:指定分割符,默认None
        # maxsplit:可选参数,分割的次数,如果不指定或者为-1,则没有次数限制
        print(s1.split(sep=',', maxsplit=1))  # ['1', '2,3.4-5']
        print(s1.split(sep=',2'))  # ['1', ',3.4-5']
    
        # str.join(iterable) 合并字符串,将每个元素用空格加str进行连接
        l_f = ['a', 'b', 'c']
        s_f = '@'.join(l_f)
        print(s_f)  # a@b@c

    检索字符串:

      # 检索字符串
        # count(x,start,end)
        # x:表示要检索的子字符串
        # start:可选参数:表示检索范围的起始位置的索引,默认从头开始
        # end:可选参数:表示检索范围的结束位置的索引,默认到结尾
        str1 = '@a,@2,@3'
        print(str1.count('@'))  # 3
        print(str1.count('1'))  # 0
    
        # find(sub,start,end),首次出现sub的位置索引,找不到返回-1
        print(str1.find('@'))  # 0
        print(str1.find('1'))  # -1
        print(str1.rfind('@'))  # 6
    
        # index(),与find类似,但找不到会抛出异常
        print(str1.index('@'))  # 0
        # print(str1.index('1'))  # ValueError: substring not found
    
        # startswith(prefix,start,end) 是否以prefix开头,是返回True,否则返回False
        print(str1.startswith('@'))  # True
    
        # endswith(suffix,start,end) 是否以suffix结尾,是返回True,否则返回False
        print(str1.endswith('@'))  # False

    字母的大小写转换:

        # 字母的大小写转换
        str1 = 'AvcaeD'
        print(str1.lower())  # avcaed
        print(str1.upper())  # AVCAED

    去除字符串中的左右两侧空白字符和特殊字符:

    # 去除字符串中的左右两侧空白字符和特殊字符
        str1 = '  df  '
        print(len(str1))  # 6
        # 去左右两侧空格
        print(len(str1.strip()))  # 2
        str2 = '  @df  '
        # 去左右两侧空格跟@
        print(str1.strip('@ '))  # df
        print(len(str1.strip('@ ')))  # 2
        # 去左侧的@
        str2 = '@21@'
        print(str2.lstrip('@'))  # 21@
        # 去右侧的@
        print(str2.rstrip('@'))  # @21

    格式化字符串:

      # 使用'%'操作符
        # '%[-][+][0][m][.n]格式化字符'%exp
        # -:可选参数,指定左对齐,正数前无符号,负数前加负号
        # +:可选参数,指定右对齐,正数前无符号,负数前加负号
        # 0:可选参数,指定右对齐,正数前无符号,负数前加负号,用0填充空白处(一般与m参数一起使用)
        # m:可选参数,表示占有宽度
        # .n:可选参数,表示小数点后保留的位数
        print('id:%08d	公司:%s	官网:http://www.%s.com' % (1, '百度', 'baidu'))  # id:00000001    公司:百度    官网:http://www.baidu.com

    # 使用字符串对象的format()方法
        # {[index][:[fill]align][sign][#][width][.precision][type]}
        # index:可选参数,指定要设置格式的对象在参数列表中的索引位置,从0开始,默认按顺序自动分配,一个模版中,要么全部指定,要么全部采用自动
        # fill:可选参数,指定空白填充的字符
        # align:可选参数,对齐方式,值<表示左对齐,>表示右对齐,=表示右对齐,将符号放在填充内容的最左侧,且只对数字类型有效,值为^表示居中,配合
        # width一起使用
        # sign:可选参数,指定有无符号数,值为+正数加正号,负数加负号;值为-正数不变,负数加负号;值为空格,正数加空格,负数加负号
        # #:可选参数,对2,8,16进制,加#表示会显示0b/0o/0x前缀,否则不显示
        # width:可选参数,指定所占宽度
        # .precision:可选参数,指定小数点后保留的位数
        # type:可选参数,指定类型
        template = 'id:{0:0>8s}	公司:{1:s}	官网:http://www.{2:s}.com'
        print(template.format('1', '百度', 'baidu'))  # id:00000001    公司:百度    官网:http://www.baidu.com
        import math
    
        print('¥{:,.2f}'.format(1250000))  # ¥¥1,250,000.00
        print('{0:.1f}用科学计数法表示:{0:E}'.format(120000.1))  # 120000.1用科学计数法表示:1.200001E+05
        print('pi取5位小数:{:.5f}'.format(math.pi))  # pi取5位小数:3.14159
        print('{0:d}的16进制结果:{0:#x}'.format(100))  # 100的16进制结果:0x64
        # 输出百分比,并且不带小数
        print('{:.0%}'.format(0.06))  # 6%

    编码与解码:

     # 字符串编码转换
        # encode(),str对象的方法,用于将字符串转为二进制数据(即bytes),也就是编码
        ver = '字符串编码转换'
        byte = ver.encode('GBK')
        print(ver)  # 字符串编码转换
        print(byte)  # b'xd7xd6xb7xfbxb4xaexb1xe0xc2xebxd7xaaxbbxbb'
    
        # decode()解码,bytes对象的方法,用于将二进制数据转为字符串
        print(byte.decode('GBK'))  # 字符串编码转换
      print('{:^24}'.format('----分割线----'))  # 居中

    打印带颜色的字符串:

    print(33[显示方式;前景色;背景色m输出内容33[0m),其中,显示方式、前景色、背景色都是可选参数(可缺省一个或多个)

     

        print("33[37;40m黑色背景33[0m")  #控制台设置白色主题,显示黑色,黑色主题显示白色
        print("33[37;41m红色背景33[0m")
        print("33[37;42m绿色背景33[0m")
        print("33[37;43m黄色背景33[0m")
        print("33[37;44m蓝色背景33[0m")
        print("33[37;45m紫色背景33[0m")
        print("33[37;46m青色背景33[0m")
        print("33[1;30;47m白色背景33[0m")#与控制台设置主题有关

  • 相关阅读:
    Acwing 284.金字塔 (区间DP)
    Acwing 283.多边形 (区间DP)
    Acwing 277.饼干 (DP+排序不等式)
    Acwing 274.移动服务 (DP)
    Acwing 273.分级 (DP)
    Acwing 271.杨老师的照相排序 (DP)
    Acwing 272.最长公共上升子序列 (DP)
    Mybatis-缓存
    mybatis与spring整合
    mybatis-sql映射文件
  • 原文地址:https://www.cnblogs.com/fly-book/p/11733277.html
Copyright © 2020-2023  润新知