python字符串中find函数_Python之字符串常用花哨玩法

字符串类型

在python中,字符串类型确实是一种很强大的类型,其中的功能函数更是令人震惊,这多么类都是谁写的,太感谢他了\(^o^)/

当然,在实际工作中可能用不到那么多的函数,根据需求来嘛,一下介绍一些常用的函数。

去除填充物函数

去除指定的填充,默认是空格

>> name=input('username>>')

username>> fade

>>> name.strip()

'fade'

>>> name.lstrip()

'fade '

>>> name.rstrip()

' fade'

>>> name=input('username>>')

username>>******fade*********

>>> name.strip('*')

'fade'

>>> name.lstrip('*')

'fade*********'

>>> name.rstrip('*')

'******fade'

切分函数

函数原型类

split(self, sep=None, maxsplit=-1):

其中,sep #指定分隔符,maxsplit #最大切割多少次

>>> user_info='ntp:x:38:38::/etc/ntp:/sbin/nologin'

>>> print(user_info.split(':')) #使用后会切割成一个列表

['ntp', 'x', '38', '38', '', '/etc/ntp', '/sbin/nologin']

>>> print(user_info.split(':')[3])

38

>>> print(type(user_info.split(':')[3]))

maxsplit的使用,指定切割几次

>>> user='w4rri0r|get|000111|crazy'

>>> print(user.split('|',1))

['w4rri0r', 'get|000111|crazy']

>>> print(user.split('|',2))

['w4rri0r', 'get', '000111|crazy']

统计字符串的长度

这个函数不用说,大家都知道,常用的到死。

>>> user='w4rri0r'

>>> len(user)

7

>>> user.__len__()

7

判断以指定字符开头或者结尾

判断开头和结尾的指定字符串是否与制定的字符串一致,返回布尔值

>>> linux='mkdir_dir&&touch a.txt'

>>> linux.endswith('txt')

True

>>> linux.startswith('mk')

True

>>> linux.startswith('mkddd')

False

替换函数

将指定字符串替换为指定字符串//如果在加上文件读写,按行读取,岂不是实现了sed -i ‘ sg’的功能\(^o^)/

>>> remark='w4rri0r is 18'

>>> print(remark.replace('w4rri0r','fade'))

fade is 18

>>> print(remark.replace('w4rri0r','fade'))

fade is 18,fade,fade,fade

>>> print(remark.replace('w4rri0r','fade',2))

fade is 18,fade,fade,w4rri0r

>>> print(remark.replace('w4rri0r','fade',1))

fade is 18,w4rri0r,fade,w4rri0r

格式化输出函数,format的三种玩法

第一种玩法。使用{}进行占位操作,然后输出后面指定的字符串

>>> print('name:{} | age:{} | sex:{},by {}'.format('w4rri0r','18','man','w4rri0r'))

name:w4rri0r | age:18 | sex:man,by w4rri0r

第二种玩法。可以使用下标的方式,进行给与其定位

>>> print('name:{0} | age:{1} | sex:{2},by {0}'.format('w4rri0r','18','man'))

name:w4rri0r | age:18 | sex:man,by w4rri0r

第三种玩法。使用keyvalues形式,进行指定输出

>>> print('name:{name} | age:{age} | sex:{sex},by {name}'.format(name='w4rri0r',age='18',sex='man'))

name:w4rri0r | age:18 | sex:man,by w4rri0r

第四种玩法。使用传参的形式,进行格式化输出

>>> name='w4rri0r'

>>> age=18

>>> sex='man'

>>> print('name:{} | age:{} | sex:{},by {}'.format(name,age,sex,name))

name:w4rri0r | age:18 | sex:man,by w4rri0r

判断字符串中是否包含有数字

>>> num='123'

>>> print(num.isdigit())

True

isdigit()

True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字

False: 汉字数字

Error: 无

isdecimal()

True: Unicode数字,,全角数字(双字节)

False: 罗马数字,汉字数字

Error: byte数字(单字节)

isnumeric()

True: Unicode数字,全角数字(双字节),罗马数字,汉字数字

False: 无

Error: byte数字(单字节)

isalpha()  判断是不是字母

isspace()  判断是不是空格

查找函数,find,index

查找字符串函数

>>> name='w4rri0r'

>>> name.find('r') #查找字符串,从左到右匹配第一个,存在即返回第一个匹配到的下标

2

>>> name.find('a') #没有匹配到,则返回-1

-1

>>> name.find('r',3,6) #可以指定区间查找

3

>>> name.find('4r')

1

>>> name.find('4i')

-1

同样是查找函数index(),在用法上都是一样的,指定要查找的字符串,只能查找第一层的字符串,同时还可以指定区间查找指定的字符串。唯一的区别就是,index在查找不见指定字符时,会出现报错,not in string,使用find函数则不会,会返回-1这个值,用以表示不存在。

其他查找函数:

.rfind 从右开始向左查找

.count统计查找到的次数

>>> name='w4rri0r'

>>> name.rfind('r')

6

>>> name.rfind('0')

5

>>> name.count('r')

3

拼接字符串,并指定分隔

可以将列表中的字符串拼接成一个字符串,并且还能添加指定的字符进行分割操作。

>>> l=['w4rri0r','say','hello','word']

>>> ':'.join(l) #':' 指定的分隔字符,(l)需要拼接的字符串列表

'w4rri0r:say:hello:word'

限制,只能是字符串,不能拼接,字符串和数字

填充字符串函数

center(self, width, fillchar=None)

该类的参数,有两个,width,指定宽度,fillchar,需要填充的字符

>>> name='w4rri0r'

>>> name.center(7,'\\') #反斜杠带有转义的意思,所以需要用两个反斜杠

'w4rri0r'

>>> name.center(7,'ra') #不能用两个字符

Traceback (most recent call last):

File "", line 1, in

TypeError: The fill character must be exactly one character long

>>> name.center(7,'O') #如果长度设置为原字符串长度,则不填充

'w4rri0r'

>>> name.center(10,'*') #长度为10,原字符串长度为7,添加到10即可

'*w4rri0r**'

还有一些其他衍生函数

>>> name='w4rri0r'

>>> print(name.ljust(11,'*')) #与正常人类相反,l是右,r是左

w4rri0r****

>>> print(name.rjust(11,'*'))

****w4rri0r

>>> print(name.zfill(10)) #zfill是默认填充的0

000w4rri0r

大小写转换

各种花哨的用法

>>> name='W4RRRI0R'

>>> name.lower() #将大写的字符全部转换为小写,同时该类没有需要传入的参数

'w4rrri0r'

>>> name='w4rrri0r'

>>> name.upper() #将所有小写的字符全部转换为大写

'W4RRRI0R'

>>> name.capitalize() #将首字母大写

'W4rrri0r'

>>> name='W4rri0r'

>>> name.swapcase() #大小写反转函数

'w4RRI0R'

>>> name='fade,crazy*w4rri0r_songsong node_3'

>>> uName=s.title()   #根据特殊字符,数字进行切割,然后将首字母大写

>>> uName

'Fade,Crazy*W4Rri0R_Songsong Node_3'

下面来一个实际用例,验证码的验证方式:

s_str='ac4EQ'

you_input=input('请输入验证码>>')

if s_str.upper()== you_input.upper():

print('输入成功')

====================直接贴结果啦,哈哈========================

请输入验证码>>ac4eq

输入成功

tab函数的用法

该函数就有些鸡肋的感觉了,用处不是很大,但是也总结上来了,看下吧~

原型类

expandtabs(self, tabsize=8) #这单词解释这么明显,tab大小默认为8个

来些实例看下

>>> name='werri0r\tsir'

>>> name.expandtabs()

'werri0r sir'

>>> name='werr\tsir'

>>> name.expandtabs()

'werr sir'

OK,就这么多了,日后有学习的,就在添加吧,吃饭去喽(*^__^*)

W4rr10r 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Python之字符串常用花哨玩法!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值