Python—常见的字符串操作

python 字符串操作常用操作,如字符串的替换、删除、截取、赋值、连接、比较、查找、分割等

1、去除空格

1.str.strip():删除字符串两边的指定字符,括号的写入指定字符,默认为空格
 >>> a='   hello   '
 >>> b=a.strip()
 >>> print (b)
 hello
2.str.lstrip():删除字符串左边的指定字符,括号的写入指定字符,默认空格
 >>> a='   hello   '
 >>> b=a.lstrip()
 >>> print (b)
 hello 
3.str.rstrip():删除字符串右边的指定字符,括号的写入指定字符,默认空格
 >>> a='   hello   '
 >>> b=a.rstrip()
 >>> print (b)
   hello

2、复制字符串

 >>> a='hello world'
 >>> b=a
 >>> print (a,b)
 hello world hello world

3、连接字符串

1.+:连接2个字符串
 >>> a='hello '
 >>> b='world'
 >>> print (a+b)
 hello world
 --------------------------------------------------------------------
 注:此方法又称为 "万恶的加号",因为使用加号连接2个字符串会调用静态函数string_concat(register PyStringObject *a ,register PyObject * b),在这个函数中会开辟一块大小是a+b的内存的和的存储单元,然后将a,b字符串拷贝进去。如果是n个字符串相连 那么会开辟n-1次内存,是非常耗费资源的。
2.str.join:连接2个字符串,可指定连接符号
 >>> li=["alex","eric"]
 >>> s="******".join(li)
 >>> print (s)
 alex******eric

4、查找字符串

str.index 和str.find 功能相同,区别在于find()查找失败会返回-1,不会影响程序运行。一般用find!=-1或者find>-1来作为判断条件。

1.str.index:检测字符串中是否包含子字符串str,可指定范围
 >>> a='hello world'
 >>> a.index('l')
 2
 >>> a.index('x')
 Traceback (most recent call last):
 File "<stdin>", line 1, in<module>
 ValueError: substring not found
2.str.find:检测字符串中是否包含子字符串str,可指定范围
 >>> a='hello world'
 >>> a.find('l')
 2
 >>> a.find('x')
 -1

5、比较字符串

str.cmp:比较两个对象,并根据结果返回一个整数。X< Y,返回值是负数 ,X>Y 返回的值为正数。

#python3已经没有该方法,官方文档是这么写的:The cmp() function should be treated as gone, and the cmp() special method is no longer supported. Use lt() for sorting, eq() with hash(), and other rich comparisons as needed. (If you really need the cmp() functionality, you could use the expression (a > b) - (a < b) as the equivalent for cmp(a, b).)大意就是cmp()函数已经“离开”了,如果你真的需要cmp()函数,你可以用表达式(a > b) - (a < b)代替cmp(a,b)

 >>> a=100
 >>> b=80
 >>> cmp(a,b)
 Traceback (most recent call last):
 File "<stdin>", line 1, in<module>
 NameError: name 'cmp'is not defined

6、是否包含指定字符串

 in|not in
 >>> 'hello'ina
 True
 >>> '123'not ina
 True

7、字符串长度

 str.len
 >>> a='hello world'
 >>> print (len(a))
 11

8、字符串中字母大小写转换

 S.lower() #转换为小写 
 >>> a='hello world'
 >>> print(a.lower())
 hello world
 S.upper() #转换为大写 
 >>> a='hello world'
 >>> print(a.upper())
 HELLO WORLD
 S.swapcase() #大小写互换 
 >>> a='hello world'
 >>> print(a.swapcase())
 HELLO WORLD
 S.capitalize() #首字母大写 
 >>> a='hello world'
 >>> print(a.capitalize())
 Hello world

9、将字符串放入中心位置可指定长度以及位置两边字符

 str.center()
 >>> a='hello world'
 >>> print(a.center(40,'*'))
 **************hello world***************

10、字符串统计

 >>> a='hello world'
 >>> print(a.count('l'))
 3

11、字符串的测试、判断函数,这一类函数在string模块中没有,这些函数返回的都是bool值

 1S.startswith('prefix',start,end)  #是否以prefix开头 
 2S.endswith('suffix',start,end)     #以suffix结尾 
 S.startswith('str',start,end)
 str --检测的字符串。
 start--可选参数用于设置字符串检测的起始位置。
 end  --可选参数用于设置字符串检测的结束位置。
 -------------------------------------------------------------------
 3S.isalnum()                   #是否全是字母和数字,并至少有一个字符 
 4S.isalpha()                          #是否全是字母,并至少有一个字符 
 5S.isdigit()                          #是否全是数字,并至少有一个字符 
 6S.isspace()                          #是否全是空白字符,并至少有一个字符 
 7S.islower()                          #S中的字母是否全是小写 
 8S.isupper()                          #S中的字母是否便是大写 
 9S.istitle()                          #S是否是首字母大写的

12、字符串切片

 >>> str ='123456789'
 >>> print (str[0:3])  #截取第一位到第三位的字符
 123
 >>> print (str[:])  #截取字符串的全部字符
 123456789
 >>> print (str[6:])  #截取第七个字符到结尾
 789
 >>> print (str[:-3])  #截取从头开始到倒数第三个字符之前
 123456
 >>> print (str[2])  #截取第三个字符
 3
 >>> print (str[-1])  #截取倒数第一个字符
 9
 >>> print (str[::-1])  #创造一个与原字符串顺序相反的字符串
 987654321
 >>> print (str[-3:-1])  #截取倒数第三位与倒数第一位之前的字符
 78
 >>> print (str[-3:])  #截取倒数第三位到结尾
 789
 >>> print (str[-5:-3])  #逆序截取,截取倒数第五位数与倒数第三位数之间
 56

13、分割,前中后三部分

 >>> s="alex SB alex"
 >>> ret =s.partition('SB')
 >>> print (ret)
 ('alex ', 'SB', ' alex')   #输出元组

14、替换

 >>> s="alex SB alex"
 >>> s.replace("al","BB")
 'BBex SB BBex'

15、按输入字符切割

 >>> s="alexaley"
 >>> ret =s.split("e")
 >>> print (ret)
 ['al', 'xal', 'y']

16、根据换行执行分割

 >>> s="alex\nalec"
 >>> print (s)
 alex
 alec
 >>> ret =s.splitlines()
 >>> print (ret)
 ['alex', 'alec']

17、大写变小写,小写变大写

 >>> s="alexASDEalec"
 >>> ret=s.swapcase()
 >>> print (ret)
 ALEXasdeALEC

18、变成标题

 >>> s="alexASDEac"
 >>> ret =s.title()
 >>> print (ret)
 Alexasdeac

19、方返回指定长度的字符串,原字符串右对齐,前面填充0

 >>> s="alex ASDElac"
 >>> ret=s.zfill(50)
 >>> print (ret)
 00000000000000000000000000000000000000alex ASDElac

20、总结

本人能力有限,如果文章有任何错误欢迎不吝赐教,其次如果大家有任何关于运维的疑难杂问,也欢迎和大家一起交流讨论。

关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。

扫描二维码

获取更多精彩

运维猫公众号

有需要技术交流的小伙伴可以加我微信,期待与大家共同成长,本人微信:

扫描二维码

添加私人微信

运维猫博主

扫码加微信

最近有一些星友咨询我知识星球的事,我也想继续在星球上发布更优质的内容供大家学习和探讨。运维猫公众号平台致力于为大家提供免费的学习资源,知识星球主要致力于即将入坑或者已经入坑的运维行业的小伙伴。

点击阅读原文  查看更多精彩内容!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值