字符串

    科技2022-07-12  125

    字符串

    1.in 和 not in

    字符串1 in 字符串2 - 判断字符串1是否是字符串2的子串(判断字符串2中是否包含字符串1)

    print('a' in 'abc') # True print('ab' in 'abc') # True print('ac' in 'abc') # False

    相关函数

    len, str

    str1 = '曾经有一份真诚的爱情...' print(len(str1)) str2 = '\tabc\n123' # 8 print(len(str2)) str3 = r'\tabc\n123' # 10 print(len(str3))

    str(数据) - 将数据转换成字符串

    所有数据都能转换成字符串

    怎么转:在数据打印值外面加引号

    num = 100 print(str(num)) print(str(True)) print(str([1, 2, 3]))

    字符串转数字

    str6 = '782' print(int(str6))

    去掉引号后本身是整数的字符串才能转换成整数型

    str7 = '12.5' print(float(str7)) str8 = '3e4' print(float(str8)) # 30000.0 name = input('请输入名字:') age = int(input('请输入年龄:')) money = float(input('月收入:')) message = name今年age,月薪money元 message = name + '今年' + str(age) + '岁' + str(money) + '元' print(message)

    当一个字符串中以一个或者多个部分是变化的时候,我们可以用字符串加法运算,来拼接

    或者格式字符串和f字符串来实现

    1.格式字符串

    格式字符串:在字符串中用格式占位符代替字符串变化的部分,然后在后面用数据来给格式占位符赋值 带有格式占位符的字符串 % (数据1, 数据2, 数据3…) 说明: 1)% - 固定写法 2)() - 固定写法,在数据只有一个的时候可以省略 3)数据 - 数据的个数必须和前面字符串中占位符的个数保持一致,类型也要一致,和占位符一一对应 4)格式占位符 - 格式占位符有哪些,对应的数据类型是什么都是固定的 %s - 字符串(可以是其他数据) #d - 整数 #f - 浮点数 %.Nf - 浮点数保留n位小数 #c - 字符(字符编码)

    message = '%s今年%d岁,月薪%.2f元' % (name, age, money) print(message)

    f-string

    1)format方法

    包含{}的字符串.format(数据1, 数据2, 数据3…) - 字符串中的{}就相当于格式字符串的占位符

    message = '{}今年{}岁,月薪{}元'.format(name, age, money) print(message)

    2)下标

    ’xxx的年龄:xx , 今年xx岁’ message = '{1}的年龄:{0}, 今年{0}岁'.format(age, name) print('format2:', message)

    key()

    message = '{y}的年龄:{x},今年{x}岁'.format(x=age, y=name) print('format3:', message)

    格式约束:{:约束条件},{下标:约束条件},{key:约束条件}

    约束条件: .Nf - 保留n位小数 字符 > Nd 或者 字符 < Nd

    约束宽度为N,不够的在前面用指定符号填充 < 约束宽度为N,不够的在后面用指定符号填充 , - 将数字三为一组用逗号隔开(一般用于大数据表示) % - 将数字用%表示,保留6位小数 .N% - 将数字转换成百分比,保留N位小数

    print('约束1:{:.2f}'.format(3.1415926)) print('约束2:{:0>5}'.format(100)) print('约束2:{:0<5}'.format(100)) print('约束3:{:,}'.format(1000000)) print('约束4:{:.1%}'.format(0.2356))

    3)f-string - format方法的简写

    message = f'{name}今年{age}岁,月薪:{money}元!' message = f'{name*2}今年{age+10},月薪:{money、1000}K'

    可以在变量上直接运算

    print(f'pi:{3.1415926:.2f}') # pi:3.14 print(f'年龄;{age: >5}') 年龄: 23

    1.字符串1.count(字符串2) - 统计字符串2在字符串1中出现的次数

    message = 'how are you? i am fine, thank you, and you' print('you的个数', message.count('you')) print('空格的个数:', message.count(' '))

    2.字符串1.find(字符串2) - 查找字符串1中字符串2第一次出现的位置,返回的是下标值

    print(message.find('you')) print(message.find('a')) print(message.find('你好')) # 找不到对应字符串就会返回 -1

    字符串1.find(字符串2, 开始下标, 结束下标) - 获取字符串2在字符串1指定范围内,第一次出现的位置

    print(message.find('you', -7)) # 39 print(message.find('you', 0, 10))

    3.字符串.join(字符串序列) - 将序列中所有的元素用指定的字符串拼接产生一个新的字符串

    list1 = ['name', 'age', 'abc', '你好'] new_str = ''.join(list1) print(new_str) a = 'hello' new_str = ' '.join(a) print(new_str)

    4. 字符串1.replace(字符串2, 字符串3) - 将字符串1中所有字符串2都替换成字符串3,产生一个新字符串

    message = 'how are you? i am fine, thank you, and you' new_str = message.replace('you', 'YOU') print(new_str)

    字符串1.replace(字符串2, 字符串3, N) - 将字符串1中前N个字符串2都替换成字符串3

    new_str = message.replace('you', 'me', 2) print(new_str) #how are me? i am fine, thank me, and you

    5. 字符串1.split(字符串2) - 将字符串1中的字符串2作为切割点对字符串1进行切割

    message = 'how are you? i am fine, thank you, and you' print(message.split(' ')) #['how', 'are', 'you?', 'i', 'am', 'fine,', 'thank', 'you,', 'and', 'you'] str1 = 'abc123abc123abc' print(str1.split('123')) # ['abc', 'abc', 'abc'] print(str1.split('1')) # ['abc', '23abc', '23abc'] print(str1.split('b')) # ['a', 'c123a', 'c123a', 'c']

    最开头和结尾,两个切割点在一起,都会出现空串

    字符串1.split(字符串2, N) - 将字符串1中的前N个字符串2作为切割点对字符串1进行切割

    6. 字符串.zfill(N) - 将字符串转换成一个指定长度的新字符串,原字符串在右边,左边用0填充

    num = 34 print(str(num).zfill(4))
    Processed: 0.010, SQL: 8