【Python】字符串2 (字符串常用函数)

一. 字符串常用函数

 1.   find()   rfind()   index()   rindex()   count()

find()   rfind()   分别用来查找一个字符串在当前的字符串指定的范围(默认是整个字符串)中,首次和最后一次出现的位置,如果不存在则返回-1;

index()   rindex()   分别用来返回当前字符串指定范围中首次和最后一次出现的位置,如果不存在则抛出异常;

count()   用来返回一个字符串在当前字符串中出现的次数,不存在返回0;

print('Java, Python, C++, R, Go'.find('o'))
print('Java, Python, C++, R, Go'.rfind('o'))
print('Java, Python, C++, R, Go'.find('x'))
print('Java, Python, C++, R, Go'.rfind('x'))

print('Java, Python, C++, R, Go'.index('o'))
print('Java, Python, C++, R, Go'.rindex('o'))
# print('Java, Python, C++, R, Go'.index('x'))    # 报错
# print('Java, Python, C++, R, Go'.rindex('x'))   # 报错

print('Java, Python, C++, R, Go'.count(','))

2.   split()   rsplit()   partition()   rpartition()

split()   rsplit()   分别用来以指定字符分隔符,从字符串左端和字符串右端开始将其分割成多个字符串,返回包含分隔结果的列表;

partition()   rpartition()   分别用来以指定字符串为分隔符将原字符串分割成三部分,分别为分隔符前字符串,分隔符字符串,分隔符后字符串,如果指定的分隔符不在原字符串中,则返回原字符串和两个空字符串组成的元祖。

print('Java, Python, C++, R, Go'.split('.'))
print('Java, Python, C++, R, Go'.rsplit(','))
print('Java, Python, C++, R, Go'.partition('x'))
print('Java, Python, C++, R, Go'.rpartition('x'))

对于 split()   rsplit()   如果不指定分隔符,则字符串中的任何空白符号都将被认定为分隔符,返回包含最终分割结果的列表。并且,split()   rsplit()   可以指定分割最大次数。

print('Java, Python, C++, R, Go'.split('o', 1)) 
# 从前往后遍历,在第一个 o 处分隔
print('Java, Python, C++, R, Go'.rsplit(',', 1))
# 从后往前遍历,在最后一个 , 处分隔

3.   join()

join()   用来将列表或其他可迭代对象中多个字符串进行连接,并在相邻两个字符串之间插入指定字符串。(使用 + 也能连接字符串,但效率低下,优先使用 join ())

' '.join(['Java', 'Python', 'C++', 'R', 'Go'])
# 将数组转化为字符串,每个元素之间用' '(空格分隔)

4.   lower()   upper()   capitalize()   title()   swapcase()

以上方法,用来将字符串转换为小写(lower()),大写字符串(upper()),将字符串首字母变为大写(capitalize()),将每一个单词首字母变为大写(title())以及大小写转化(swapcase())。

print(' '.join(['Java', 'Python', 'C++', 'R', 'Go']).lower())
print(' '.join(['Java', 'Python', 'C++', 'R', 'Go']).lower().upper())
print(' '.join(['Java', 'Python', 'C++', 'R', 'Go']).lower().upper().swapcase())
print(' '.join(['Java', 'Python', 'C++', 'R', 'Go']).lower().upper().swapcase().capitalize())
print(' '.join(['Java', 'Python', 'C++', 'R', 'Go']).lower().upper().swapcase().capitalize().title())

5.   replace()

该方法用来替换字符串中指定字符或子字符的所有重复出现,每次只能替换一个字符或者子字符串,返回处理后的新字符串,不修改原字符串。

programs = ('Java', 'Python', 'C++', 'R', 'Go')
text = 'Python and Java are both simple programming languages'
for program in programs:
    text = text.replace(program, '***')
print(text)

6.   maketrans()   translate()

maketrans()   用来生成字符映射表,translate()   安映射表中对应关系转换字符串并替换其中的字符,使用着两个方法的组合可以同时处理多个字符,replace() 无法满足这一要求。

table = ''.maketrans('0123456789', '零一二三四五六七八九')
print('2022年1月3日'.translate(table))

7.   string()   rstring()   lstrip()

以上方法分别用来删除当前字符串两段,右端,或左端的空白字符或指定字符。

print(list(' string '.strip()))
print(list(' string '.rstrip()))
print(list(' string '.lstrip()))
print(list(' string '.strip('s')))    # 指定的字符是头才能删除
print(list(' string '.strip(' s')))
print(list(' string '.rstrip(' g')))

8.   eval()

尝试把任何字符串转化为Python表达式并求值。

值得注意的是,它可以计算任何合法表达式的值,如果你巧妙地构造输入的字符串,可以执行任何外部程序,有一定风险,建议改用 ast 模块的 literal_eval() 函数。

print(eval('3+5'))
print(eval('3'+'5'))

9.   关键字 in   not in

与列表,元组,字典,集合,迭代器,对象一样,也可以使用关键字 in 和 not in 来判断一个字符串是否出现在另一个字符串中。

print('jianghua' in 'my name is jianghua')

10.   startswith()   endswith()

分别用来判断字符串是否以指定字符串开始或结束,可以接收两个整数参数来限定字符串的检测范围。(区分大小写)

print('JiangHua is a good boy'.startswith('Jiang'))
print('JiangHua is a good boy'.startswith('jiang'))
print('JiangHua is a good boy'.endswith('Boy'))

11.   isalnum()   isalpha()   isdigit()   isspace()   isupper()   islower()

用于判断字符串是否全为数字或英文字母,是否全部为英文字母,是否全部为数字字符,是否全部为空白字符,是否全部为大写英文字母,以及是否全为小写英文字母。

random1 = ''.join(random.choices(string.digits + string.ascii_letters, k=10))   
# 随机数字 大小写字母是个
print(random1)
print(random1.isalnum())   # 是否全为数字或字母
print(random1.isalpha())   # 是否全为字母
print(random1.isdigit())   # 是否全为数字
print(random1.isspace())   # 是否全为空白字符
print(random1.isupper())   # 是否全为大写字母
print(random1.islower())   # 是否全为小写字母

12.   center()   ljust()   rjust()

返回指定宽度的新字符串,原字符串居中,左对齐或右对齐出现在新字符串中,如果指定的宽度大于原字符串长度,则使用指定的字符填充。

print('Python'.center(20, '='))
print('Python'.ljust(20, '+'))
print('Python'.rjust(20, '-'))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值