05.字符串

Laozizuiku 2019-10-24

# 拼接字符串
    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 + ‘\n‘ + 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)  # @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

相关推荐