字符串的常用方法

2022-12-15 Python基础

字符串的操作无论是在java开发还是Python开发中都是非常多的,本文不单会讲述字符串的常用操作,还有字符的格式化。常用的操作有大小写转换、字符串翻转、获取字符串长度、是否以某字符串开始、替换字符串、查询字符串的位置……

方法名称 使用效果
capitalize 将字符串首字母小写,其他字母小写
casefold 所有字母转小写,casefold支持很多不同种类的语言
lower 所有字母转小写,lower函数只支持Ascll表中的字符
upper 所有字母转大写
swapcase 字母大小写翻转
zfill 为字符串定义长度,如不满足,缺少的部分用0填补
count 统计字符在某字符串内出现的次数,使用方法 str.count('a')
startswith 判断开始位置是否是某元素
endswith 判断结束位置是否是某元素
find 查询元素在字符串内的位置,从0开始,如果找不到返回0
index 查询元素在字符串内的位置,从0开始,如果找不到会报错
strip 去除左右指定元素,默认去除空格;
replace(old,new,max) 字符串替换,默认全部替换,可指定替换数量
isspace 是否全部由空格组成,注意空字符串返回的是False
istitle 字符串是否是一个标题类型,即每个单词首字母是否都是大写
isupper 判断字符串字母是否都是大写
islower 判断字符串字母是否都是小写

# 1.capitalize

将字符串首字母小写,其他字母小写,它仅对第一个字母有效,如果第一个字符是中文或者数字等其他字符,则不变。

if __name__ == '__main__':
    name = 'hello world'
    c1 = name.capitalize()
    print(c1)  # Hello world

# 2.操作字符相关

if __name__ == '__main__':
    name = 'HelloWorld'
    print(name.casefold())  # helloworld
    print(name.lower())     # helloworld
    print(name.upper())     # HELLOWORLD
    print(name.swapcase())  # hELLOwORLD

# 3.zfill

if __name__ == '__main__':
    name = 'HelloWorld'
    print(name.zfill(20))  # 0000000000HelloWorld
    print(name.zfill(2))  # HelloWorld

# 4.count

if __name__ == '__main__':
    name = 'HelloWorld'
    print(name.count('world'))  # 0
    print(name.count('World'))  # 1
    print(name.count('o'))  # 2

# 5.startswith和endswith

if __name__ == '__main__':
    name = 'HelloWorld'
    print(name.startswith('Hello'))  # True
    print(name.endswith('World'))    # True
    print(name.endswith('Wor'))      # False

# 6.find和index

if __name__ == '__main__':
    name = 'HelloWorld'
    print(name.find('o'))      # 4
    print(name.index('o'))     # 4
    print(name.find('a'))      # -1
    print(name.index('a'))     # 报错

# 7.strip

去除字符串左右两边指定元素,默认去除空格。lstrip仅去掉字符串开头指定元素,rstrip仅去掉字符串结尾指定元素

if __name__ == '__main__':
    name = '    Hello   World   '
    print(name.strip())     # Hello   World
    
    name = 'Hello World'
    print(name.strip('H'))  # ello World

# 8.replace

if __name__ == '__main__':
    name = 'Hello World'
    print(name.replace('o', '1'))     # Hell1 W1rld,全部替换
    print(name.replace('o', '1', 1))  # Hell1 World,指定替换的数量

# 7.返回值为bool的方法

isspace是否由空格组成,不包含空字符串;istitle是否是标题类型,即单词首字母是否为大写;isupper是否都为大写;islower是否都为小写。

if __name__ == '__main__':
    name = 'Hello World'

    print('      '.isspace())  # True
    print(''.isspace())  # False,空字符串返回的是False
    print(name.isspace())  # False

    print(name.istitle())  # True
    print('helloworld'.istitle())  # False

    print('helloworld'.isupper())  # False
    print('helloworld'.islower())  # True

# 字符串的格式化

字符串的格式化主要有两种方式,第一种是在字符串中使用%类型来代表一个占位符,第二种是使用format函数。

# 方法一:默认的字符串格式化方法

%s是一个占位符,在python中代表任意数据类型,使用方法如下

if __name__ == '__main__':
    info = 'my name is %s, my age is %s' % ('CV大魔王', 20)
    print(info)

    info2 = 'my name is %s, my age is %s'
    name1 = 'CV大魔王1'
    age1 = 30
    name2 = 'CV大魔王2'
    age2 = 40
    print(info2 % (name1, age1))
    print(info2 % (name2, age2))
    print(info2 % ('小明', age2))

控制台输出,如下所示

my name is CV大魔王, my age is 20
my name is CV大魔王1, my age is 30
my name is CV大魔王2, my age is 40
my name is 小明, my age is 40
符号 说明
%s 格式化字符串,通用类型
%d 格式化整形
%f 格式化浮点型
%u 格式化无符号型(正整形)
%c 格式化字符(长度为1的字符串)

# 方法二:使用format函数(推荐)

和log4j框架的使用方法有点像,{}代表占位符。

if __name__ == '__main__':
    info = 'my name is {}, my age is {}'
    name = 'CV大魔王1'
    age = 30
    print(info.format(name, age))

# 方法三:Python3.6新方法

有种jsp的感觉和Vue的感觉,相当于字符串内嵌套python代码。

if __name__ == '__main__':
    name = 'CV大魔王1'
    age = 30
    info = f'my name is {name}, my age is {age}'
    print(info)
上次更新: 1 年前