资讯动态

Python基础6 - 字符串:(2)字符串常用操作

发布时间:2026/8/17 17:08:41 来源:尧图企业网站定制
目录一. 拼接二. 计算字符串长度三. 截取字符串一普通截取二反向输出字符串四. 分割、合并字符串一分割字符串二合并字符串五. 检索字符串一包含子字符串的个数二是否包含子字符串六. 字母大小写转换一判断首字母是否大写二首字母转大写三全部字母转大写四全部字母转小写七. 去除空格、特殊字符八. 格式化字符串九. 替换子字符串一. 拼接字符串1 字符串2str1 我今天一共走了 num 12098 str2 步 try: print(str1numstr2) except TypeError: print(num是数值不是字符串) print(str1str(num)str2) # num是数值不是字符串 # 我今天一共走了12098步字符1.join(字符串1)在“字符串1”的每个字符之间加入“字符1”print(*.join(计算机二级等级考试)) # 计*算*机*二*级*等*级*考*试二. 计算字符串长度len(字符串名)str1 人生苦短我用Python! print(len(str1)) # 14三. 截取字符串一普通截取字符串名[start : end : step]str1 人生苦短我用Python! print(str1[1])#截取第2个字符 print(str1[5:])#从第6个字符截取一直到结束 print(str1[:5])#从第1个字符截取到第5个 print(str1[2:5])#截取第3至5个字符 # 生 # 我用Python! # 人生苦短 # 苦短二反向输出字符串字符串名[ : :-1]str1 人生苦短我用Python! print(str1[::-1])#截取第2个字符 # !nohtyP用我短苦生人四. 分割、合并字符串一分割字符串字符串名.split(指定分隔符,分割次数)指定分隔符默认为None即承认所有非字符包括空格、换行符\n、制表符\t等分割次数指定分割次数若为None或-1则分割次数无限制若“分割次数”指定则“指定分隔符”必须指定若“指定分隔符”不指定则“分割次数”也不能指定str1 你 有 多自信\n世界 就有 print(str1.split())#不指定分隔符与分割次数则将所有空格和换行符\n视为分隔符分割次数不限 print(str1.split( ))#将一个空格视为分隔符\n不是分割次数不限 print(str1.split( ,3))#将一个空格视为分隔符分割3次 # [你, 有, 多自信, 世界, 就有] # [你, , 有, 多自信\n世界, 就有] # [你, , 有, 多自信\n世界 就有]二合并字符串新字符串名 用于连接的符号.join(原字符串)lis_friend [巴菲特,比尔盖茨,卡尔本茨] str_friend .join(lis_friend) print(str_friend) # 巴菲特比尔盖茨卡尔本茨五. 检索字符串一包含子字符串的个数字符串名.count(要检索的内容, start, end)LunYu 子曰学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎 子曰其为人也孝弟而好犯上者鲜矣不好犯上而好作乱者未之有也。君子务本本立而道生。孝弟也者其为仁之本与 子曰巧言令色鲜矣仁 曾子曰吾日三省吾身:为人谋而不忠乎?与朋友交而不信乎?传不习乎? 子曰道千乘之国,敬事而信节用而爱人使民以时。 子曰弟子入则孝出则弟谨而信泛爱众而亲仁。行有余力则以学文。 子夏曰贤贤易色事父母能竭其力事君能致其身与朋友交言而有信。虽曰未学吾必谓之学矣。 子曰君子不重则不威学则不固。主忠信无友不如己者过则勿惮改。 曾子曰慎终追远民德归厚矣。 子禽问于子贡曰夫子至于是邦也必闻其政求之与抑与之与”子贡曰“夫子温、良、恭、俭、让以得之。夫子之求之也其诸异乎人之求之与 子曰父在观其志。父没观其行三年无改于父之道可谓孝矣。 print(LunYu.count(子曰))#统计“子曰”出现的次数 print(LunYu.count())#统计逗号“”出现的次数 # 9 # 30二是否包含子字符串字符串名.find(子字符串, start, end)包含返回第一次出现所在的索引值不包含返回-1LunYu 子曰学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎 子曰其为人也孝弟而好犯上者鲜矣不好犯上而好作乱者未之有也。君子务本本立而道生。孝弟也者其为仁之本与 print(LunYu.find(子曰))#是否包含“子曰” print(LunYu.find(父曰))#是否包含“父曰” # 1 # -1子字符串 in 字符串包含True不包含FalseLunYu 子曰学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎 子曰其为人也孝弟而好犯上者鲜矣不好犯上而好作乱者未之有也。君子务本本立而道生。孝弟也者其为仁之本与 print(子曰 in LunYu) #是否包含“子曰” print(父曰 in LunYu) #是否包含“父曰” # True # False字符串名.index(子字符串, start, end)包含返回首次出现的位置索引从左向右不包含报错LunYu 子曰学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎 子曰其为人也孝弟而好犯上者鲜矣不好犯上而好作乱者未之有也。君子务本本立而道生。孝弟也者其为仁之本与 print(LunYu.index(子曰))#是否包含“子曰” try: print(LunYu.index(父曰))#是否包含“父曰” except ValueError: print(字符串中不包含‘父曰’) # 1 # 字符串中不包含‘父曰’字符串名.rindex(子字符串, start, end)包含返回首次出现的位置索引从右向左不包含报错LunYu 子曰学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎 子曰其为人也孝弟而好犯上者鲜矣不好犯上而好作乱者未之有也。君子务本本立而道生。孝弟也者其为仁之本与! print(LunYu.rindex(子曰))#是否包含“子曰” try: print(LunYu.rindex(父曰))#是否包含“父曰” except ValueError: print(字符串中不包含‘父曰’) # 54 # 字符串中不包含‘父曰’字符串名.startswith(子字符串, start, end)判断字符串是否以子字符串开头返回值True、FalseLunYu 子曰学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎 子曰其为人也孝弟而好犯上者鲜矣不好犯上而好作乱者未之有也。君子务本本立而道生。孝弟也者其为仁之本与! print(LunYu.startswith(子曰))#是否包含“子曰” print(LunYu.startswith(父曰))#是否包含“父曰” # True # False字符串名.endswith(子字符串, start, end)判断字符串是否以子字符串结尾返回值True、FalseLunYu 子曰学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎 print(LunYu.endswith())#是否以“!”结尾 print(LunYu.endswith())#是否以“?”结尾 # False # True六. 字母大小写转换一判断首字母是否大写字符串.istitle( )判断每个单词的首字母是否都以大写开头str_1 Hello World print(str_1.istitle()) # True二首字母转大写字符串.title( )将每个首字母都以大写开头str_1 hello world print(str_1.title()) # Hello World三全部字母转大写字符串名.upper( )str_1 Hello World print(str_1.upper()) # HELLO WORLD四全部字母转小写字符串名.lower( )str_1 Hello World print(str_1.lower()) # hello world七. 去除空格、特殊字符字符串名.strip(要删1, 要删2, ... ,要删n)字符串名.strip( )删除左右两端空格与特殊字符不删中间字符串名.strip( )删除左右两端的空格不删特殊字符不删中间字符串名.strip(\n)删除左右两端的特殊字符不删空格不删中间str_1 相信 自己\n print(str_1.strip()) print(str_1.strip( )) print(str_1.strip(\n)) # 相信 自己 # 相信 自己 # # 相信 自己字符串名.lstrip(要删1, 要删2, ... ,要删n)字符串名.lstrip( )删除左侧空格与特殊字符str_1 相信 自己\n print(str_1.lstrip()) print(111) # 相信 自己 # # 111字符串名.rstrip(要删1, 要删2, ... ,要删n)字符串名.strip( )删除左右两端空格与特殊字符不删中间字符串名.strip( )删除左右两端的空格不删特殊字符不删中间字符串名.strip(\n)删除左右两端的特殊字符不删空格不删中间str_1 相信 自己\n print(str_1.rstrip()) print(111) # 相信 自己 # 111八. 格式化字符串%[-][][0][m][.n][格式字符]%[exp]-用以指定左对齐正数前无符号负数前加负号用以指定右对齐正数前加正号负数前加负号0表示右对齐正数前无符号负数前加负号空白处用0填充m表示占有宽度.n表示小数点后保留位数格式字符- %s字符串str()表示- %r字符串表示- %c单个字符- %o八进制整数- %d十进制整数- %x十六进制整数- %f浮点数- %e指数- %%字符%exp要转换的项多个项时用元组不可用列表name (一梦,冷毅毅,香凝,带蓝) const (水瓶座,射手座,双鱼座,双子座) age (26, 24, 30, 21) template 序号%03d\t姓名%s\t星座%s\t年龄%2d # %03d右对齐空白处用0填充、占有3宽度、十进制整数 # %s字符串表示 # %2d占有2宽度、十进制整数 for i in range(len(name)): people_list [i,name[i], const[i], age[i]] people_tuple tuple(people_list) print(template%people_tuple) # 序号000 姓名一梦 星座水瓶座 年龄26 # 序号001 姓名冷毅毅 星座射手座 年龄24 # 序号002 姓名香凝 星座双鱼座 年龄30 # 序号003 姓名带蓝 星座双子座 年龄21字符串模板.format(参数1, 参数2, ... ,参数n)字符串模板{[1]: [2] [3] [4] [5] [6] .[7] [8]}1. 参数所在的索引值2. 填充字符3. 对齐方式- 左对齐- 右对齐- 居中对齐^4. 有无符号数5. 是否加前缀 #进制转换时6. 所占宽度7. 保留位数8. 指定类型- S字符串- D十进制- C十进制对应Unicode字符- b二进制- o八进制- x十六进制- e科学计数法- f浮点数- %百分号print({0:05s}.format(7)) # 0参数的索引值为0可省略{:05s} # 0用0填充空白字符可换成其他字符{:5s} 7 # 右对齐 # 5占5个字符宽度 # s对字符串格式化当占位符{ }数量多于参数时占位符{}必须指定参数索引值try: print({}开{}落.format(花)) except IndexError: print(IndexError) print({0}开{0}落.format(花)) # 花开花落当占位符与参数数量相等且对应时占位符{}可以不加参数索引值print({}曰学而时习之不亦{}.format(孔子,说乎)) # 孔子曰学而时习之不亦说乎当占位符与参数数量相等,但位置不对应时占位符{}必须加参数索引值print({1}曰学而时习之不亦{0}.format(说乎,孔子)) # 孔子曰学而时习之不亦说乎当占位符与参数数量相等,但位置不对应时占位符{}必须全部加参数索引值不能只加某几个try: print({}曰学而时习之不亦{0}.format(说乎,孔子)) except ValueError : print(ValueError) print({1}曰学而时习之不亦{0}.format(说乎,孔子))name (一梦,冷毅毅,香凝,带蓝) const (水瓶座,射手座,双鱼座,双子座) age (26, 24, 30, 21) template 序号{:#3d}\t姓名{:s}\t星座{:s}\t年龄{:2d} for i in range(len(name)): print(template.format(i1,name[i],const[i],age[i])) # 序号##1 姓名一梦 星座水瓶座 年龄26 # 序号##2 姓名冷毅毅 星座射手座 年龄24 # 序号##3 姓名香凝 星座双鱼座 年龄30 # 序号##4 姓名带蓝 星座双子座 年龄21print(12513950 的结果为用货币形式显示{:,.2f}.format(12513950)) # 参数的索引值为0已省略 # ,逗号表示千位分隔符 # .2保留两位小数 # f浮点数 # 12513950 的结果为用货币形式显示5,201.00print({0:.1f}用科学计数法表示{0:e}.format(120000.1)) # 当占位符{}数量多于参数时必须指定参数索引值。参数的索引值为0 # 0参数的索引值为0 # .1保留一位小数 # f用浮点数表示 # 0参数的索引值为0 # e用科学计数法表示 # 120000.1用科学计数法表示1.200001E05import math print(Pi取五位小数{:.5f}.format(math.pi)) # 参数的索引值为0已省略 # .5保留5位小数 # f用浮点数表示 # Pi取五位小数3.14159print({0:d}的16进制表示为{0:#x}.format(100)) # 0当占位符{}数量多于参数时必须指定参数索引值。参数的索引值为0 # d十进制表示 # 0当占位符{}数量多于参数时必须指定参数索引值。参数的索引值为0 # #加前缀十六进制前缀为0x # x十六进制表示 # 100的16进制表示为0x64print({:#^20}.format(等级考试)) print(等级考试.center(20, *)) # ########等级考试######## # ********等级考试********九. 替换子字符串replace(原字符或字符串, 新字符或字符串)

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价