Python-字符串常用操作

1.字符串查询操作的方法

count(str,start,stop)   检索指定字符串在一个字符串中出现的次数
index()   查找字串substr第一次出现的位置,如果查找的字串不存在时,则抛出ValueError
rindex()  查找字串substr最后一次出现的位置,如果查找的字串不存在时,则抛出ValueError
find()    查找字串substr第一次出现的位置,如果查找的字串不存在时,则返回-1
rfind()   查找字串substr最后一次出现的位置,如果查找的字串不存在时,则返回-1
startswith(str,start,stop) 检索字符串是否以指定字符串开头,是则返回True,不是则返回False
endswith(str,start,stop)   检索字符串是否以指定字符串结尾,是则返回True,不是则返回False

实例:

定义一个字符a:

a = "hello,hello,hello"

①次数统计count()

print(a.count("lo"))

未指定字符开始位置,则此时默认为开头,统计在a中从开头到结束出现"lo"的个数,结果很明显可知为3

print(a.count("lo", 5))

在此处我们指定了字符开始位置为5,即从第五个字符开始到结束统计lo出现的次数,结果为2

②出现位置index()和rindex()

index为找第一次出现的位置,rindex为找最后一次出现的位置

print(a.index("lo"))
print(a.rindex("lo"))

输出结果为:

3

15

③出现位置find()和rfind()

print(a.find("lo"))
print(a.rfind("lo"))

输出结果依然为

3

15

那find和index的区别是什么呢?

在未找到结果时,index会直接抛出错误,而find会返回值-1

④指定开头结尾startswith()和endswith()

startswith()即检验字符串是否以输入字符为开头

endswith()即检验字符串是否以输入字符为结尾

并返回布尔值,True即为是,False即为否

print(a.startswith("h"))  
print(a.startswith("@")) 
print(a.endswith("lo"))
print(a.endswith("ol"))

输出结果为:

True

False

True

False

2.字符串的大小写转换操作

upper()       把字符串中的所有字符转成大写字母
lower()       把字符串中的所有字符转成小写字母
swapcase()    把字符串中的大写字母转小写字母,小写字母转大写字母
capitalize()  把第一个字符转成大写,其他转成小写
title()       把每个单词的第一个字母转换成大写,其余转换为小写

实例如下:

b = "aBcDEfgHIjklMNoPqRsTUVwxYZ"
print("b为:", b)
print("b大转小,小转大大:", b.swapcase())
print("b全转大写:", b.upper())
print("b全转小写:", b.lower())
c = "i always LIKE YOU SO MUCH"
print(c)
print(c.capitalize())
print(c.title())

输出结果为:

b为:             aBcDEfgHIjklMNoPqRsTUVwxYZ
b大转小,小转大大:     AbCdeFGhiJKLmnOpQrStuvWXyz
b全转大写:         ABCDEFGHIJKLMNOPQRSTUVWXYZ
b全转小写:         abcdefghijklmnopqrstuvwxyz

i always LIKE YOU SO MUCH
I always like you so much
I Always Like You So Much

3.字符串内容对齐的操作方法:

center()  居中对齐,第1个参数指定宽度,第2个参数指定填充符,第2个参数是可选的,默认是空格,如果设置宽度小于实际宽度则则返回原字符串
ljust()   左对齐,第1个参数指定宽度,第2个参数指定填充符,第2个参数是可选的,默认是空格,如果设置宽度小于实际宽度则则返回原字符串
rjust()   右对齐,第1个参数指定宽度,第2个参数指定填充符,第2个参数是可选的,默认是空格,如果设置宽度小于实际宽度则则返回原字符串
zfill()   右对齐,左边用0填充,该方法只接收一个参数,用于指定字符串的宽度,如果指定的宽度小于等于字符串的长度,返回字符串本身

首先定义一个字符串:

d1 = "hello,,world"

首先对其进行 居中操作:

print(d1)
print(d1.center(20, "*"))  
print(d1.center(21, "*"))  
print(d1.center(10, "*"))  

center第二个参数为填充字符,即当指定字符不够我们输入的总字符量时,就会用填充字符来对缺少的字符进行补充,结果为:

hello,,world
****hello,,world****
*****hello,,world****
hello,,world

ljust()和rjust()同理,为左对称和右对称:

print(d1.ljust(20, "*"))
print(d1.rjust(20))  
print(d1.rjust(20, "*"))

(若我们没有指定填充字符,则填充字符默认为空格)

而左对齐往右填充,右对齐往左填充

输出结果为:

hello,,world********
        hello,,world
********hello,,world

zfill()为右对齐,而起只接受一个参数,就是指定字符串的宽度。

print(d1.zfill(20))
d2 = "-100001"
print(d2.zfill(20))

输出结果为:

00000000hello,,world
-0000000000000100001

可以发现,对数字字符进行填充时,会在符号位后进行填充,同时也会算上符号位。

4.字符串的劈分操作

split()     从字符串的左边开始劈分,默认的劈分字符是空格字符串,返回的值都是一个列表,以通过参数sep指定劈分字符串是的劈分符;通过参数maxsplit指定劈分字符串时的最大劈分次数,在经过最大次劈分之后,剩余的子串会单独做为一部分

rspplit()   从字符串的右边开始劈分,默认的劈分字符是空格字符串,返回的值都是一个列表 ,以通过参数sep指定劈分字符串是的劈分符;通过参数maxsplit指定劈分字符串时的最大劈分次数,在经过最大次劈分之后,剩余的子串会单独做为一部分

e1 = "hello world ls love zs"
e2 = "hello,world,ls,love,zs"

对e1和e2进行劈分:

print(e1.split())  
print(e2.split(","))
print(e2.split(sep=","))
print(e1.split(maxsplit=2))
print(e1.rsplit(maxsplit=3))

对劈分字符未指定时,默认的劈分字符为空格,返回值为列表:

['hello', 'world', 'ls', 'love', 'zs']
['hello', 'world', 'ls', 'love', 'zs']
['hello', 'world', 'ls', 'love', 'zs']
['hello', 'world', 'ls love zs']
['hello world', 'ls', 'love', 'zs']

5.判断字符串的操作方法

isidentifier()   判断指定的字符串是不是合法的标识符
isspace()        判断指定的字符串是否全部由空白字符组成(回车、换行,水平制表符)
isalpha()        判断指定的字符串是否全部由字母或汉字组成
isdecimal()      判断指定字符串是否全部由十进制的数字组成
isnumeric()      判断指定的字符串是否全部由数字组成
isalnum()        判断指定字符串是否全部由字母,汉字和数字组成

用法非常的简单:

首先先定义字符串:

f1 = "hello,world"
f2 = "hello_world"
f3 = "  \t\n\t"
f4 = "alaph"
f5 = "0b01111110"
f6 = "18948455"
f7 = "ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ"  # 罗马数字
f8 = "123四"
f9 = "ab散散112哈哈哈ⅣⅤ"
f10 = "_,:c"

①isidentifier()

print(f1.isidentifier())  
print(f2.isidentifier())
print("张三".isidentifier())

, 逗号不是合法的标识符,所以输出结果为:

False
True
True

②isspace()

print(f1.isspace())
print(f3.isspace())

输出结果为:

False
True

③isalpha()

print(f2.isalpha())
print(f4.isalpha())
print("张三".isalpha())

输出结果为:

False
True
True

⑤isdecimal()

print(f5.isdecimal())
print(f6.isdecimal())
print(f8.isdecimal())
print(f7.isdecimal())

输出结果为:

False
True
False
False

⑥isnumeric()

print(f7.isnumeric())  
print(f8.isnumeric())

输出结果为:

True
True

⑦isalnum()

print(f9.isalnum())  
print(f10.isalnum())  

输出结果为:

True
False

6.字符串的其他操作

字符串替换:  replace() 第1个参数指定被替换的子串,第2个参数指定替换子串的字符串,该方法返回替换后得到的字符串,替换前的字符串不发生变化,调用该方法时可以通过第3个参数指定最大替换次数
字符串合并:  join()    将列表或元组中的字符串合并成一个字符串

①replace()

g1 = "a1b2c3d4f5g6h7i8j9"
print(g1.replace("d", "M"))
g2 = "aabbccaabbcc"
print(g2.replace("a", "N", 3))

输出结果为:

a1b2c3M4f5g6h7i8j9
NNbbccNabbcc

②join()

h = ["i\t", "l", "o", "v", "e""\tw", "w"]
print("".join(h).title())
# "" 里面可以写间隔符
print("|".join(h).title())

输出结果为:

I    Love    Ww
I    |L|O|V|E    W|W

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值