字符串的一些内置函数
1.format方法
基本语法是通过 {} 和 : 来代替 %
#基本设置 string = '{},{}'.format("hello","world") print(string) #占位符方式 print('%s,%s'%('hello','world')) # 通过字典设置 string1 = {'name':'mh','age':'28'} print('姓名:{name},年龄{age}'.format(**string1)) #占位符方式 print('姓名:%s,年龄%s'%(string1.get('name'),string1.get('age'))) #通过列表索引设置 string2 = ['mh','28'] print('姓名:{0[0]},年龄{0[1]}'.format(string2)) #占位符方式 print('姓名:%s,年龄%s'%(string2[0],(string2[1])))
输出结果为:
hello,world
hello,world
姓名:mh,年龄28
姓名:mh,年龄28
姓名:mh,年龄28
姓名:mh,年龄28
2.字符串的截取
#字符串的截取 string1 = '1Hello World' print(string1[1:6]) #使用方括号进行字符串的截取 取前5个字符,遵循左闭右开原则,从第二个元素开始取到第五个 #字符串的更新 string2 = 'Hello World' string3 = 'Welcome to China' print('更新后的字符串:',string2[:6]+string3) #字符转换 string4 = ' --ABcv+ ' print(string4.lower()) #将字符串转化成小写 print(string4.upper()) #将字符串转化成大写 print(string4.isupper())#返回布尔类型 都是小写 则返回 True,否则返回 False print(string4.islower())#返回布尔类型 都是大写 则返回 True,否则返回 False print(len(string4))#返回字符串的长度 print(string4.strip())#去掉字符串首尾的空格 print(string4.lstrip())#去掉字符串左边的空格 print(string4.rstrip())#去掉字符串右边的空格 print(string4.swapcase())#字符串的大小写转换 print(string4.strip().strip('-+'))#去掉空格及+-符号
输出结果为:
Hello 更新后的字符串: Hello Welcome to China --abcv+ --ABCV+ False False 12 --ABcv+ --ABcv+ --ABcv+ --abCV+ ABcv
3. 深拷贝与浅拷贝:深拷贝内存地址一定变化,而内存地址变化了不一定是深拷贝,如列表中含有二维数组元素
import copy l1 = [1,2,3,4,5,['a','b','c']] l2 = copy.deepcopy(l1)#深拷贝内存变化 l3 = copy.copy(l1)#浅拷贝,修改l1元素里面的数组,l3也会变化,修改以外的元素则不会变化 l4 = l1#浅拷贝内存地址不变,l1,l3指向同一个内存地址 l1[-1].append('ddd') l1.append(9) print('l2内存地址是%s,l2是%s'%(id(l2),l2)) print('l1内存地址是{},l1是{}'.format(id(l1),l1)) print('l3内存地址是{},l3是{}'.format(id(l3),l3)) l3.remove(2) print('l1内存地址是{},l1是{}'.format(id(l1),l1)) print('l3内存地址是{},l3是{}'.format(id(l3),l3)) print('l1内存地址是{},l1是{}'.format(id(l1),l1)) print('l4内存地址是{},l4是{}'.format(id(l4),l4)) 输出: l2内存地址是4356093896,l2是[1, 2, 3, 4, 5, ['a', 'b', 'c']] l1内存地址是4627550472,l1是[1, 2, 3, 4, 5, ['a', 'b', 'c', 'ddd'], 9] l3内存地址是4356094280,l3是[1, 2, 3, 4, 5, ['a', 'b', 'c', 'ddd']] l1内存地址是4627550472,l1是[1, 2, 3, 4, 5, ['a', 'b', 'c', 'ddd'], 9] l3内存地址是4356094280,l3是[1, 3, 4, 5, ['a', 'b', 'c', 'ddd']] l1内存地址是4627550472,l1是[1, 2, 3, 4, 5, ['a', 'b', 'c', 'ddd'], 9] l4内存地址是4627550472,l4是[1, 2, 3, 4, 5, ['a', 'b', 'c', 'ddd'], 9]
4.其它常用方法
s='abc1234' s1= ' ' s2='123456' s3='hello world welcome to earth' s4='abcD' s5=['a','v','d','s',1] print('1',s.index('a'))#找字符串下标,找不到会报错 print('2',s.find('b'))#找字符串下标,不会报错,输出-1 print('3',s.isdigit())#返回一个布尔类型,检测字符串是否只由数字组成 print('4',s.islower())#返回一个布尔类型,判断字符串含有的字母是否都是小写 print('5',s.isupper())#返回一个布尔类型,判断字符串含有的字母是否都是大写 print('6',s.startswith('a'))#返回一个布尔类型,判断字符串是否以'a'开头 print('7',s.endswith('4'))#返回一个布尔类型,判断字符串含是否以'4'结尾 print('8',s1.isspace())#返回一个布尔类型,检测字符串是否只由空格组成 print('9',s.isalpha())#返回一个布尔类型,检测字符串是否只由字母组成 print('10',s2.isalnum())#返回一个布尔类型,检测字符串是否只由数字组成 print('11',s.capitalize())#将字符串的首字母大写 print('12',s3.title())#多个单词首字母大写 print('13',s4.replace('D','d'))#字符串替换'D',替换为'd' print('14',s.center(20,'#'))#返回一个字符串居中,并使用'#'填充至长度为20的新字符串 print('15',s.zfill(10))#返回指定长度为10的字符串,原字符串右对齐,前面填充0 print('16',s3.split(' '))#通过指定分隔符' '(空格)对字符串进行切片,分割后形成一个列表 print('17',','.join(s2))#序列中的元素以指定的字符','连接生成一个新的字符串 输出: 1 0 2 1 3 False 4 True 5 False 6 True 7 True 8 True 9 False 10 True 11 Abc1234 12 Hello World Welcome To Earth 13 abcd 14 ######abc1234####### 15 000abc1234 16 ['hello', 'world', 'welcome', 'to', 'earth'] 17 1,2,3,4,5,6
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理