python3字符串相关知识整理

本文深入讲解Python中的字符串操作,包括转义字符的使用、格式化输出的规则、字符串的拼接与切片方法,以及丰富的内建函数如find、replace、split等的功能和应用。适合初学者和进阶开发者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、转义字符

有时候在输出一些字符串的时候会遇到被转义字符误解的情况,比如:

print("my nick name is "lalala".")  #出问题了,两个双引号之间的内容被理解为单独的字符串了

这种情况有很多解决方式,最简单的是在要打印出来的引号前面加上\,还可以用不同类型的引号来区分内外关系,比如:

print("my nick name is \"lalala\".")
print("my nick name is 'lalala'.")
print('my nick name is '''lalala'''.')

另外,有些特殊含义字符(比如换行符\n,转义符\)出现在要打印的字符串中时,如果要将这些字符打印出来,就在其前面再加一个\,比如:

print("my nick name is \\"lalala\\".")  #输出my nick name is \"lalala\".
print("my nick name \\n is \"lalala\".")  #输出my nick name \n is "lalala".

 

二、字符串格式化输出

格式:%[(name)][flags][width][.precision]typecode

(name):用于选择指定的名称对应的值,一般只在输出的字符串为字典形式时才使用,不用可缺省,例如:

mathScore = 59
engScore = 58
print("math score is %(ms)d, eng score is %(es)d" % ({"es":engScore, "ms":mathScore}))

[flags]:标志位,有默认值

  • 默认空:表示右对齐
  • -:表示左对齐
  • ‘ ’:加空格表示在正数的左侧填充一个空格,从而与负数对齐,注意无论加多少个空格,输出后只会填充一个空格
  • 0:表示用0填充

[width]:表示输出的宽度,即一个输出的字符或字符串占多大位置

[.precision]:表示小数点后精度位数

typecode:必须写明,表示把字符串以什么形式输出

  • i/d:将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
  • o:将整数转换成 八  进制表示,并将其格式化到指定位置
  • x:将整数转换成十六进制表示,并将其格式化到指定位置
  • e/E:将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e/大写E)
  • f:将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
  • g/G:自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e/E;)

 

三、字符串拼接与切片

拼接不说了,切片就是获取一个字符串的某个片段,可以是一个字符也可以是一段字符串。

获取某一个字符:name[下标]

注意:下标越界会抛出异常

获取一个字符串片段:name[start:end:step]

反转字符串:name[::-1]

 

四、字符串内建函数

  • len(name):返回名为name的字符串的长度,因为是内建函数,直接使用就行。

下面的方法都是对象方法了,不能像len(name)一样直接用,要使用   对象.方法(参数)   来调用,注意以下方法省略"对象.":

  • find(sub, start=0, end=len(str)):查找第一个相同的子串索引位置,找到返回索引,找不到返回-1,从左往右找
  • rfind(sub, start=0, end=len(str)):查找第一个相同的子串索引位置,找到返回索引,找不到返回-1,从右往左找
  • index(sub, start=0, end=len(str)):获取子串索引位置,找到返回索引,找不到抛出异常,从左往右找
  • rindex(sub, start=0, end=len(str)):获取子串索引位置,找到返回索引,找不到抛出异常,从右往左找
  • count(sub, start=0, end=len(str)):计算某个子字符串的出现个数,返回一个整型值
  • replace(old, new, [count]):使用给定的新字符串[new]替换原字符串中的旧字符串[old],count表示替换个数,可省略,返回一个新的字符串,并不会修改原字符串本身
  • capitalize():将字符串首字母变为大写,返回首字符大写后的新字符串,并不会修改原字符串本身
  • title():将字符串每个单词的首字母变为大写,返回每个单词首字符大写后的新字符串,并不会修改原字符串本身
  • lower():将字符串每个单词的首字母变为小写,返回每个单词首字符小写后的新字符串,并不会修改原字符串本身
  • upper():将字符串每个字符都变为大写,返回全部变为大写后的新字符串,并不会修改原字符串本身
  • ljust(width, fillchar):根据指定字符(fillchar,1个),将原字符串填充够指定长度,l表示原字符串靠左,返回填充完毕的新字符串,并不会修改原字符串本身
  • rjust(width, fillchar):根据指定字符(fillchar,1个),将原字符串填充够指定长度,r表示原字符串靠右,返回填充完毕的新字符串,并不会修改原字符串本身
  • center(width, fillchar):根据指定字符(fillchar,1个),将原字符串填充够指定长度,原字符串居中,返回填充完毕的新字符串,并不会修改原字符串本身
  • lstrip(chars):移除所有原字符串中指定字符(默认为空白字符),l表示从左侧开始移除,返回移除完毕的结果字符串,并不会修改原字符串本身
  • rstrip(chars):移除所有原字符串中指定字符(默认为空白字符),r表示从右侧开始移除,返回移除完毕的结果字符串,并不会修改原字符串本身
  • split(sep, maxsplit):将一个大的字符串分割成几个子字符串,sep表示分隔符,maxsplit表示最大分割次数,默认有多少分割多少,返回分割后的子字符串组成的列表,并不会修改原字符串本身
  • partition(sep):根据指定的分隔符, 返回(分隔符左侧内容, 分隔符, 分隔符右侧内容),如果查找到分隔符,返回tuple类型的(分隔符左侧内容, 分隔符, 分隔符右侧内容),如果没有查找到分隔符,返回tuple类型的(原字符串, "", ""),从左侧开始查找分隔符,并不会修改原字符串本身
  • rpartition(sep):根据指定的分隔符, 返回(分隔符左侧内容, 分隔符, 分隔符右侧内容),如果查找到分隔符,返回tuple类型的(分隔符左侧内容, 分隔符, 分隔符右侧内容),如果没有查找到分隔符,返回tuple类型的(原字符串, "", ""),从右侧开始查找分隔符,并不会修改原字符串本身
  • splitlines(keepends):按照换行符(\r, \n), 将字符串拆成多个元素, 保存到列表中,参数keepends是bool类型,表示是否保留换行符,返回list类型的被换行符分割的多个字符串作为元素组成的列表,并不会修改原字符串本身
  • join(iterable):根据指定字符串, 将给定的可迭代对象, 进行拼接, 得到拼接后的字符串,iterable表示可迭代对象(字符串,列表,元组等),返回拼接好的新字符串
  • isalpha():字符串中是否所有的字符都是字母,返回bool型
  • isdigit():字符串中是否所有的字符都是数字,返回bool型
  • isalnum():字符串中是否所有的字符都是数字或者字母,返回bool型
  • isspace():字符串中是否所有的字符都是空白符,包括空格,缩进,换行等不可见转义符,返回bool型
  • startswith(prefix, start=0, end=len(str)):判定一个字符串是否以某个前缀prefix开头,返回bool型
  • endswith(suffix, start=0, end=len(str)):判定一个字符串是否以某个后缀suffix结尾,返回bool型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值