day8字符串

    科技2025-02-11  13

    字符串

    1.字符串操作

    1.1 in 和 not in 字符串1 in 字符串2 - 判断字符串1是否是字符串2的子串

    1.2 相关函数 1)求长度(len)

    str1 = r'\tabc\n123' print(len(str1)) # 10

    2)str(数据) - 将数据准换成字符串 所有的数据都可以转换成字符串,在数据打印值外面加引号。

    num = 100 print(str(num)) # '100' print(str(True)) # 'True' print(str([1, 2, 3])) # '[1, 2, 3]' # c.字符串转数字 str2 = '782' print(int(str2)) # 去掉引号后本身是整数的字符串才能转换成整型 # str3 = '12.5' # print(int(str3)) 不能转成整型 str4 = '12.5' print(float(str4)) # 12.5 print(float(str2)) # 782.0 str5 = '3e4' print(float(str5)) # 30000.0

    2.格式字符串

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

    name = '小明' age = 23 money = 78273.982 message = '%s今年%d岁,月薪%.2f元, 等级:%c' % (name, age, money, 65) print('格式字符串:', message)

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

    name = '小明' age = 23 money = 78273.982 # a.{} message = '{}今年{}岁,月薪{}元'.format(name, age, money) print('format1:', message) # b.{下标} - 下标指的是获取format中第几个数据,从0开始 # 'xxx的年龄:xx, 今年xx岁' message = '{1}的年龄:{0}, 今年{0}岁'.format(age, name) print('format2:', message) # c.{key} message = '{y}的年龄:{x}, 今年{x}岁'.format(x=age, y=name) print('format3:', message)

    2)格式约束: {:约束条件}、{下标:约束条件}、{key:约束条件} 约束条件: .Nf - 保留N位小数(四舍五入) 符号>Nd - 约束数据宽度为N,不够的在前面用指定符号填充 符号<Nd - 约束数据宽度为N,不够的在后面用指定符号填充 , - 将数字三位一组用逗号隔开(一般用于大数据的表示) % - 将小数转换成百分比数据,保留6位小数 .N% - 将小数转换成百分比数据,保留N位小数

    print('约束1:{:.2f}'.format(3.1415926)) # 约束1:3.14 print('约束1:{0:.3f}'.format(3.1415926)) # 约束1:3.142 print('约束2:{:0>5}'.format(100)) # 约束2:xx100 print('约束2:{:0<5}'.format(23)) # 约束2:23000 print('约束2:{: >5}'.format('abc')) # 约束2: 34 print('约束3:{:,}'.format(1000000)) # 约束3:1,000,000 print('约束4:{:%}'.format(0.2356)) # 约束4:23.560000% print('约束4:{:.1%}'.format(0.2356)) # 约束4:23.6%

    3)f-string - format方法的简写 语法: f’字符串内容’

    name = '小明' age = 23 money = 78273.982 message = f'{name}今年{age}岁,月薪:{money}元!' print(message) # 小明今年23岁,月薪:78273.982元! message = f'{name*2}今年{age+10}, 月薪:{money/1000}K' print(message) # 添加约束 print(f'pi:{3.1415926:.2f}') # pi:3.14 print(f'年龄:{age: >5}') # 年龄: 23

    3.字符串相关操作

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

    b.字符串1.find(字符串2) - 获取字符串2第一次在字符串1中出现的位置(返回的是下标值), 如果找不到就返回-1 字符串1.find(字符串2,开始下标,结束下标) - 获取字符串2在字符串1指定范围内第一次出现的位置

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

    list1 = ['name', 'age', 'abc', '你好'] new_str = ''.join(list1) print(new_str) # 'nameageabc你好' print('+'.join(list1)) # 'name+age+abc+你好' message = 'hello' new_str = ' '.join(message) print(new_str) # 'h e l l o # 看一眼! [str(x) for x in nums] - 列表推导式 nums = [100, 20, 30, 40] print(''.join([str(x) for x in nums])) # 100203040

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

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

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

    str2 = 'abc123abcc123' print(str2.split('c')) # ['ab', '123ab', '', '123'] message = 'how are you? i am fine, Thank you, and you?' print(message.split(' ', 2)) # ['how', 'are', 'you? i am fine, Thank you, and you?']

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

    num = 34 print(str(num).zfill(4)) # 0034
    Processed: 0.016, SQL: 8