Python教程 - 字符串常用方法

Python 教程 - 字符串中已经认识了字符串 String 的基本用法,这篇文章会整理出字符串的常用方法。

常用操作方法

下面整理了字符串常用的操作方法

方法 说明
str(x) 转换与创建字符串
+ 拼接字符串
重复字符串
str[] 获取字符
len(str) 获取字符串长度
str.split(x) 根据 x 拆分字符串
str.join(iter) 将列表拼接成字符串
str.replace(x, y, n) 将字符串中的 x 替换为 y,n 为要替换的数量,可不填 (表示全部替换)
str.strip() 去除字符串开头或结尾的某些字符
str.capitalize() 将字符串首字母变成大写
str.casefold()、str.lower() 将字符串全部转成小写
str.upper() 将字符串全部转成大写
str.title() 将字符串全部转成标题 (每个单词首字母大写)
str.swapcase() 将字符串的大小写反转
str.count(sub, start, end) 计算某段文本在字符串中出现的次数 (start、end 为范围,可不填)
str.index(sub, start, end) 寻找某段文本在字符串中出现的位置 (start、end 为范围,可不填)
str.format 格式化字符串,参考.format
str.encode(encoding='utf-8', errors='strict') 字符串编码

常用判断方法

下面整理了字符串常用的判断方法,这些方法使用后会返回 True 和 False。

方法 说明
sub in str 判断字符串中是否存在某段文本,返回 True 或 False。
str.isalnum() 判断字符串中是否都是英文字母或数字(不能包含空格或符号),返回 True 或 False。
str.isalpha() 判断字符串中是否都是英文字母(不能包含数字、空格或符号),返回 True 或 False。
str.isdigit() 判断字符串中是否都是数字 (不能包含英文、空白或符号),返回 True 或 False
str.islower() 判断字符串中是否都是小写英文字母,返回 True 或 False
str.isupper() 判断字符串中是否都是大写英文字母,返回 True 或 False
str.istitle() 判断字符串中是否为标题 (每个单词首字母大写),返回 True 或 False

str(x)

使用str(x)可以将 x 转换成字符串类型。

scss 复制代码
a = str(123)
print(a)   # 123 ( 字符串类型,不是数字 )

拼接字符串

使用可以将不同的字符串拼接在一起。

ini 复制代码
a = 'abc'
b = '123'
print(a + b)   # abc123

重复字符串

使用可以将同一个字符串重复指定的次数。

ini 复制代码
a = 'abc'
print(a*3)

str[]

使用str[]可以取出字符串中的某些字符。

scss 复制代码
a = '0123456789abcdef'
print(a[0])       # 0 ( 第一个字符 )
print(a[3])       # 3 ( 第四个字符 )
print(a[-1])      # f ( 最后一个字符 )
print(a[:])       # 0123456789abcdef ( 取出全部字符 )
print(a[5:])      # 56789abcdef ( 从 5 开始到结束 )
print(a[:5])      # 01234 ( 从 0 开始到第 4 个 ( 5-1 ) )
print(a[5:10])    # 56789 ( 从 5 开始到第 9 个 ( 10-1 ) )
print(a[5:-3])    # 56789abc ( 从 5 开始到倒数第 4 个 ( -3-1 ) )
print(a[5:10:2])  # 579 ( 从 5 开始到第 9 个,中间略过 2 个 )

len(str)

使用len(str)可以获取字符串长度 (有几个字符)。

ini 复制代码
a = 'hello world'
print(len(a))    # 11

str.split(x)

使用str.split(x)可以根据 x 字符拆分字符串,使字符串变成列表形式。

scss 复制代码
a = 'hello world, I am oxxo, how are you?'
b = a.split(',') # 以逗号,进行拆分
c = a.split(' ') # 以空白字符 进行拆分
d = a.split()    # 如果不指定分隔符号,自动以空白字符进行拆分
print(b)         # ['hello world', ' I am oxxo', ' how are you?']
print(c)         # ['hello', 'world,', 'I', 'am', 'oxxo,', 'how', 'are', 'you?']
print(d)         # ['hello', 'world,', 'I', 'am', 'oxxo,', 'how', 'are', 'you?']

str.join(iter)

使用str.join(iter)可以将原本的字符串,拼接指定的列表,变成新的字符串。

ini 复制代码
a = ['hello world', 'I am oxxo', 'how are you?']
b = ', '.join(a)  # 使用逗号,进行拼接
print(b)  # hello world, I am oxxo, how are you?

str.replace(x, y, n)

使用str.replace(x, y, n)可以将字符串中的 x 替换为 y,n 为要替换的数量,可不填 (表示全部替换)

ini 复制代码
a = 'hello world, lol'
b = a.replace('l','XXX')
c = a.replace('l','XXX',2)
print(b)  # heXXXXXXo worXXXd, XXXoXXX ( 所有的 l 都被换成 XXX )
print(c)  # heXXXXXXo world, lol ( 前两个 l 被换成 XXX )

str.strip()

使用str.strip()可以去除字符串开头或结尾的某些字符。

ini 复制代码
a = '  hello!!'
b = a.strip()
c = a.strip('!')
d = a.lstrip()
e = a.rstrip()
print(b) # hello!!
print(c) #   hello
print(d) # hello!!    使用 lstrip() 函数可以只去除左边
print(e) #   hello!!  使用 rstrip() 函数可以只去除右边

下面的例子,会去除开头与结尾指定的字符

ini 复制代码
s = '@!$##$#ABCDE%#$#%#$'
a = s.strip('!@#$%^&*(')
print(a)  # ABCDE

str.capitalize()

使用str.capitalize()将字符串的首字母变成大写。

css 复制代码
a = 'hello world, i am oxxo!'
b = a.capitalize()
print(b)    # Hello world, i am oxxo!

str.casefold()、str.lower()

使用str.casefold()str.lower()可以将字符串全部转成小写,str.casefold() 更会将一些其他语系的小写字母作转换。

ini 复制代码
a = 'Hello World, I am OXXO!'
b = a.casefold()
c = a.lower()
print(b)    # hello world, i am oxxo!
print(c)    # hello world, i am oxxo!

str.upper()

使用str.upper()可以将字符串全部转成大写。

css 复制代码
a = 'Hello World, I am OXXO!'
b = a.upper()
print(b)    # HELLO WORLD, I AM OXXO!

str.title()

使用str.title()可以将字符串全部转成标题 (每个单词首字母大写)

css 复制代码
a = 'Hello world, I am OXXO! How are you?'
b = a.title()
print(b)    # Hello World, I Am Oxxo! How Are You?

str.swapcase()

使用str.swapcase()可以将字符串的大小写反转。

css 复制代码
a = 'Hello world, I am OXXO!'
b = a.swapcase()
print(b)   # hELLO WORLD, i AM oxxo!

str.count(sub, start, end)

使用str.count(sub, start, end)可以计算某段文在字符串中出现的次数 (start、end 为范围,可不填)。

ini 复制代码
a = 'Hello world, I am OXXO!'
b = a.count('o')
c = a.count('o', 1, 5)
print(b)     # 2
print(c)     # 1

str.index(sub, start, end)

使用str.index(sub, start, end)可以寻找某段文本在字符串中出现的位置 (start、end 为范围,可不填)。

ini 复制代码
a = 'Hello world, I am OXXO!'
b = a.index('w')
print(b)     # 6

str.encode(encoding='utf-8', errors='strict')

使用 str.encode(encoding='utf-8', errors='strict')可以针对字符串进行编码。

ini 复制代码
a = 'Hello world, 喔哈!'
b = a.encode(encoding='utf-8', errors='strict')
c = a.encode(encoding='BIG5', errors='strict')
print(b)    # b'Hello world, \xe5\x93\x88\xe5\x93\x88\xef\xbc\x81'
print(c)    # b'Hello world, \xab\xa2\xab\xa2\xa1I'

sub in str

使用sub in str可以判断字符串中是否存在某段文本,返回 True 或 False (也可使用 not in 判断是否不存在)。

bash 复制代码
a = 'Hello world!'
print('wo' in a)      # True
print('ok' not in a)  # True

str.isalnum()

使用str.isalnum()可以判断字符串中是否都是英文字母或数字 (不能包含空白或符号),返回 True 或 False。

ini 复制代码
a = 'Helloworld123'
b = 'Helloworld123!!'
c = 'Hello world'
print(a.isalnum())   # True
print(b.isalnum())   # False ( 包含惊叹号 )
print(c.isalnum())   # False ( 包含空白 )

str.isalpha()

使用str.isalpha()可以判断字符串中是否都是英文字母 (不能包含数字、空白或符号),返回 True 或 False。

ini 复制代码
a = 'Helloworld'
b = 'Helloworld123'
c = 'Hello world'
print(a.isalpha())   # True
print(b.isalpha())   # False ( 包含数字 )
print(c.isalpha())   # Fasle ( 包含空白 )

str.isdigit()

使用str.isdigit()可以判断字符串中是否都是数字 (不能包含英文、空白或符号),返回 True 或 False。

ini 复制代码
a = '12345'
b = 'Hello123'
c = '1 2 3'
print(a.isdigit())   # True
print(b.isdigit())   # False  ( 包含英文 )
print(c.isdigit())   # Fasle  ( 包含空白 )

str.islower()

使用str.islower()可以判断字符串中是否都是小写英文字母 (忽略数字和符号),返回 True 或 False。

ini 复制代码
a = 'hello world 123'
b = 'Hello World 123'
print(a.islower())    # True
print(b.islower())    # False ( H 和 W 是大写 )

str.isupper()

使用str.isupper()可以判断字符串中是否都是大写英文字母 (忽略数字和符号),返回 True 或 False。

ini 复制代码
a = 'HELLO 123'
b = 'Hello 123'
print(a.isupper())    # True
print(b.isupper())    # False

str.istitle()

使用str.istitle()可以判断字符串中是否为标题 (每个单词首字母大写),返回 True 或 False。

ini 复制代码
a = 'Hello World I Am Oxxo 123!!'
b = 'Hello World I Am OXXO 123!!'
c = 'Hello world, I am OXXO 123!!'
print(a.istitle())    # True
print(b.istitle())    # False ( OXXO 全都大写 )
print(c.istitle())    # False ( world 和 am 首字母没有大写 )
相关推荐
源码方舟2 分钟前
SpringBoot + Shiro + JWT 实现认证与授权完整方案实现
java·spring boot·后端
那雨倾城1 小时前
使用 OpenCV 将图像中标记特定颜色区域
人工智能·python·opencv·计算机视觉·视觉检测
LuckyTHP4 小时前
java 使用zxing生成条形码(可自定义文字位置、边框样式)
java·开发语言·python
热河暖男4 小时前
【实战解决方案】Spring Boot+Redisson构建高并发Excel导出服务,彻底解决系统阻塞难题
spring boot·后端·excel
mahuifa5 小时前
(7)python开发经验
python·qt·pyside6·开发经验
学地理的小胖砸6 小时前
【Python 操作 MySQL 数据库】
数据库·python·mysql
安迪小宝6 小时前
6 任务路由与负载均衡
运维·python·celery
Blossom.1186 小时前
使用Python实现简单的人工智能聊天机器人
开发语言·人工智能·python·低代码·数据挖掘·机器人·云计算
lisw057 小时前
Python高级进阶:Vim与Vi使用指南
python·vim·excel
ayiya_Oese7 小时前
[模型部署] 3. 性能优化
人工智能·python·深度学习·神经网络·机器学习·性能优化