【python学习笔记】字符串常用函数--持续更新

目录

引言:

len()函数

split()函数

join() 函数

count 方法

find() 方法

index() 方法

字符串大小写转换

删除指定字符

字符串对齐方法

startswith()和endswith()方法

encode()和decode()方法

 dir()和help()帮助函数


引言:

本文主要记录字符串常用函数及例子。

len()函数

作用:要想知道一个字符串有多少个字符(获得字符串长度),或者一个字符串占用多少个字节,可以使用 len 函数。

语法:len(string)

注意:在 Python 中,不同的字符所占的字节数不同,数字、英文字母、小数点、下划线以及空格,各占一个字节,而一个汉字可能占 2~4 个字节,具体占多少个,取决于采用的编码方式。例如,汉字在 GBK/GB2312 编码中占用 2 个字节,而在 UTF-8 编码中一般占用 3 个字节。

以 UTF-8 编码为例,字符串“人生苦短,我用Python!”所占用的字节数如图 1 所示。

 我们可以通过使用 encode() 方法,将字符串进行编码后再获取它的字节数。例如,采用 UTF-8 编码方式,计算“人生苦短,我用Python”的字节数,可以执行如下代码:

例1:
str1 = "人生苦短,我用python!"
len(str1.encode())

结果:
27

注:因为汉字加中文标点符号共 7 个,占 21 个字节,而英文字母和英文的标点符号占 6 个字节,一共占用 27 个字节。

例2:
str1 = "人生苦短,我用python!"
len(str1.encode("gbk"))

结果:
20

注:获取采用 GBK 编码的字符串的长度

split()函数

作用:split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到列表中(不包含分隔符),作为方法的返回值反馈回来。

语法:str.split(sep,maxsplit)

--sep:用于指定分隔符,可以包含多个字符。此参数默认为 None;

--maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制。

注:在 split ()方法中,如果不指定 sep 参数,那么也不能指定 maxsplit 参数。
        split() 方法默认采用空字符进行分割,但当字符串中有连续的空格或其他空字符时,都会被视为一个分隔符对字符串进行分割。

join() 函数

作用:是 split() 方法的逆方法,用来将列表(或元组)中包含的多个字符串连接成一个字符串。

语法:newstr = str.join(iterable)

--str:用于指定合并时的分隔符;

--iterable:做合并操作的源字符串数据,允许以列表、元组等形式提供。

例子:
list = ["a","b","c"]
y = ''.join(list)
print(y)
print(type(y))

结果:abc
<class 'str'>
注:分隔符是空字符

count 方法

作用:count 方法用于检索指定字符串在另一字符串中出现的次数,如果检索的字符串不存在,则返回 0,否则返回出现的次数。

语法:str.count(sub[,start[,end]])

--str:表示原字符串;

--sub:表示要检索的字符串;

--start:指定检索的起始位置,默认从头开始检索;

--end:指定检索的终止位置,默认检索到结尾。

find() 方法

作用:检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引;反之,则返回 -1。

语法:str.find(sub[,start[,end]])

--str:表示原字符串;

--sub:表示要检索的字符串;

--start:指定检索的起始位置,默认从头开始检索;

--end:指定检索的终止位置,默认检索到结尾。

注:python还提供了 rfind() 方法,与 find() 方法最大的不同在于,rfind() 是从字符串右边开始检索。

index() 方法

作用:检索是否包含指定的字符串,同 find() 方法类似,不同之处在于,当指定的字符串不存在时,index() 方法会抛出异常。

语法:str.index(sub[,start[,end]])

字符串大小写转换

python的字符串变量提供了 3 种方法,分别是 title()、lower() 和 upper()。

title() 方法

作用:将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后,此方法会返回转换得到的字符串。如果字符串中没有需要被转换的字符,此方法会将字符串原封不动地返回。语法:str.title()

lower()方法

作用:将字符串中的所有大写字母转换为小写字母,转换完成后,该方法会返回新得到的字符串。如果字符串中原本就都是小写字母,则该方法会返回原字符串。

语法:str.lower()

upper()方法

作用:upper() 的功能和 lower() 方法恰好相反,它用于将字符串中的所有小写字母转换为大写字母,和以上两种方法的返回方式相同,即如果转换成功,则返回新字符串;反之,则返回原字符串。

语法:str.upper()

删除指定字符

字符串变量提供了 3 种方法来删除字符串中多余的空格和特殊字符,它们分别是:

  1. strip():删除字符串前后(左右两侧)的空格或特殊字符。
  2. lstrip():删除字符串前面(左边)的空格或特殊字符。
  3. rstrip():删除字符串后面(右边)的空格或特殊字符。

语法:str.strip([chars])

--[chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符。

字符串对齐方法

str 提供了 3 种可用来进行文本对齐的方法,分别是 ljust()、rjust() 和 center() 方法。

ljust() 方法的功能是向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的。

rjust() 方法是向字符串的左侧填充指定字符,从而达到右对齐文本的目的。

center() 字符串方法与 ljust() 和 rjust() 的用法类似,但它让文本居中,而不是左对齐或右对齐。

格式:str.center(width[, fillchar])

startswith()和endswith()方法

startswith()方法

作用:检索字符串是否以指定字符串开头,如果是返回 True;反之返回 False。

语法:

str.startswith(sub[,start[,end]])

--start:指定检索开始的起始位置索引,默认从头开始检索;

--end:指定检索的结束位置索引,默认一直检索在结束。

endswith()方法

endswith() 方法用于检索字符串是否以指定字符串结尾,如果是则返回 True;反之则返回 False。

使用方法同startswith()方法

encode()和decode()方法

最早的字符串编码是 ASCII 编码,它仅仅对 10 个数字、26 个大小写英文字母以及一些特殊字符进行了编码。ASCII 码做多只能表示 256 个符号,每个字符只需要占用 1 个字节。

 GBK 和 GB2312 是我国制定的中文编码标准,规定英文字符母占用 1 个字节,中文字符占用 2 个字节;而 UTF-8 是国际通过的编码格式,它包含了全世界所有国家需要用到的字符,其规定英文字符占用 1 个字节,中文字符占用 3 个字节。

python3.x 默认采用 UTF-8 编码格式,有效地解决了中文乱码的问题。

在 Python 中,有 2 种常用的字符串类型,分别为 str 和 bytes 类型,其中 str 用来表示 Unicode 字符,bytes 用来表示二进制数据。str 类型和 bytes 类型之间就需要使用 encode() 和 decode() 方法进行转换。

encode()方法

encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。

格式:str.encode([encoding="utf-8"][,errors="strict"])

decode()方法

和 encode() 方法正好相反,decode() 方法用于将 bytes 类型的二进制数据转换为 str 类型,这个过程也称为“解码”。

语法:

bytes.decode([encoding="utf-8"][,errors="strict"])

 dir()和help()帮助函数

dir() 函数用来列出某个类或者某个模块中的全部内容,包括变量、方法、函数和类等,

用法:dir(obj)

--obj 表示要查看的对象。obj 可以不写,此时 dir() 会列出当前范围内的变量、方法和定义的类型。

help() 函数用来查看某个函数或者模块的帮助文档,

用法:help(obj)

obj 表示要查看的对象。obj 可以不写,此时 help() 会进入帮助子程序。

掌握了以上两个函数,我们就可以自行查阅 Python 中所有方法、函数、变量、类的用法和功能了。

最后,如果这篇文章让你有多一点点了解编程这个世界,那就点个赞吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值