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")#与控制台设置主题有关

原文地址:https://www.cnblogs.com/fly-book/p/11733277.html