字符串方法有很多,这里只讨论一些常用的,使用万能的点操作字符串的方法。
因为字符串是不可变数据类型,所以字符串方法不会在字符串本身进行修改,而是将修改后的新字符串作为返回值返回。故而若要使用字符串方法,需要使用变量来接收才行。
.upper()
方法
.upper()
方法可以将字符串中的所有小写字母转换为大写字母:
1 | name = "alex" |
输出的结果为:
1 | alex |
.lower()
方法
.lower()
方法与 .upper()
方法刚好相反,是将字符串中所有的大写字母转换为小写字母:
1 | name = "ALEX" |
输出的结果为:
1 | ALEX |
.upper()
和 .lower
方法的一个很常见的应用场景是一些不需要区分大小写的情况,比如输入验证码或用户名时:
1 | yzm = "0G8k" |
.startswith()
方法
.startswith()
方法用来判断字符串是否以指定的参数开头,返回的是布尔值:
1 | name = 'alex' |
.startswith()
方法还支持字符串的 切片
,判断切片后的字符串是否是以相应的参数开头:
1 | name = 'alex' |
.endswith()
方法
.endswith()
的用法跟 startswith()
十分相似。不同的是,它是用来判断字符串是否以指定的字符串结尾,返回的同样是布尔值。.endswith()
方法同样支持切片操作。
1 | name = 'alex' |
.count()
方法
.count()
方法用来统计输入的参数在字符串中出现的次数,例如:
1 | name = "meet_alex" |
.strip()
方法
补充知识:\n
为 换行符
,也就是键盘上的 回车
键;\t
为 制表符
,也就是键盘上的 Tab
键:
1 | print("你\n好") # 换行就是键盘上的回车键 |
输出的结果为:
1 | 你 |
.strip()
方法用来去除字符串两端的空格、换行符和制表符:
1 | name = ' \nalex \t ' |
输出的结果为:
1 | alex |
.strip()
方法也可以通过设定参数来指定去除头尾两端的内容:
1 | name = 'aaaaa aelx \naa\ta\naaaaa' |
输出的结果为:
1 | aelx |
需要注意的是,当指定参数后,将不会清除空格、换行符和制表符。
.strip()
方法的应用场景是当输入账号密码时,忽视首位无意间输入的或者复制粘贴过来的空格:
1 | user = input("账号:").strip() |
另外,int()
内部封装了 .strip()
方法。故而当使用 int()
函数将字符串转换为整型时,不需要额外的 .strip()
操作:
1 | num = ' \t 23 \n ' |
.split()
方法
.split()
方法用来分割字符串。默认按照空格、换行符和制表符来进行分割。分割后,空格、换行符和制表符将不存在。.split()
方法输出的是列表:
1 | a = "alex alex123" |
输出的结果为:
1 | ['alex', 'alex123'] |
空格、换行符和制表符都有同样的结果:
1 | name = "alex\nmeet" |
.split()
方法可以指定参数,通过特定的内容进行分割:
1 | a = "alex:alex123" |
输出的结果同样是:
1 | ['alex', 'alex123'] |
.replace()
方法
.replace()
方法可以替换字符串中的旧内容为新内容。.replace()
有三个参数:参数 1 为旧值,参数 2 为新值,参数 3 为替换次数(默认全部替换)。例如:
1 | name = 'alexmeet' |
is
系列方法(判断系列)
is
系列方法有很多,主要用到的是如下几个:
name.isalnum()
:用来判断是不是由字母、中文或数字组成,返回的是布尔值name.isalpha()
:用来判断是否由字母或中文组成,返回布尔值name.isdigit()
:用来判断是否由阿拉伯数字组成,返回布尔值。有一个 bug 是,像 ⑤ 这样的字符也会被认作阿拉伯数字name.isdecimal()
:用来判断是不是由十进制组成,返回的是布尔值name.islower()
:用来判断字符串中的字母(包括英文字母和希腊字母等)是不是全部小写,中文和数字不考虑(如果全部是中文和数字或是空字符串,返回 False)name.isupper()
:用来判断字符串中的字母(包括英文字母和希腊字母等)是不是全部大写,中文和数字不考虑(如果全部是中文和数字或是空字符串,返回 False)