python -- 字符串操作

python -- 字符串操作

  • capitalize 首字母大写
name = "name"
# 让str的首字母大写
print(name.capitalize())
  • count 统计字符串里有多少个需要查找的元素
name = "name"
# 统计str中有几个,数值返回类型是int
print(name.count('a'))
  • center
name = "name"
# 需要50个字符,中间有name,其他用-填充
print(name.center(50, '-'))
  • encode
name = "na\tme"
# 转换成二进制
print(name.encode())
  • decode
name2 = b'na\tme'
# 反转换,但是变量一定要是byte类型,不然无法使用
print(name2.decode())
  • endswith
name = "name"
# 判断str的是以什么为结尾吗?返回值是布尔类型
print(name.endswith("e"))
  • startswith
  • expandtabs 将srt里面的\t(tab键)用制定数量的tab键填充
name = "na\tme"
# 将tab键的长度调整为2,其实一个tab的长度就是2或4
print(name.expandtabs(2))
# tabsize可以不写,因为位置参数
print(name.expandtabs(tabsize=4))
print(name)
#将tab键的长度调整为6,这样就有变化了
print(name.expandtabs(6))
  • find
  • rfind
name = "name name"
print('The len of {0} is '.format(name),len(name))
print('\033[31;1m--------------\033[0m')
# 从左边查找,最右边的a在第几个位置
print(name.find('a'))  # 返回值:1
# 从左边查找,最右边me在第几个位置
print(name.find('me'))  # 返回值:2
print('\033[32;1m--------------\033[0m')
# 从左边查找,最右边的a在第几个位置
print(name.rfind('a'))  # 返回值:6
# 从左边查找,最右边的me在第几个位置
print(name.rfind('me'))  # 返回值:7

find的切片用法

name = "name"
# 从左边查找a在第几个位置
print(name.find('a'))  # 返回值:1
print(name[name.find('a'):4])  # 返回值:ame
print(name[:])  # 返回值:name,等同于print(name)
  • format
name = "name: {0}, age: {1}, sex:{2}"
print(name.format('姓名','年龄','姓名'))
  • format.map 支持字典式样的格式化,用的比较少
name = "我叫{name},我今年{age}岁,我的工作是{job}"
print(name.format_map({'name':'Gao','age':20,'job':'clerk'}))
  • index 检索位置
name = "我叫{name},我今年{age}岁,我的工作是{job}"
print(name.index('n')) # 返回值:3

index的切片用法

name = "我叫{name},我今年{age}岁,我的工作是{job}"
print(name.index('n')) # 返回值:3
#用index做str的切片
print(name[name.index('n'):7]) # 返回值:name
  • isalnum 检查str是否包含阿拉伯字符(数字有属于阿拉伯),如果有特殊符就返回False
name = 'abd123'
name2 = 'qazwsx'
name3 = '@qazwsx'
print(name.isalnum())  #返回值:True
print(name2.isalnum())  #返回值:True
print(name3.isalnum())  # 返回值:False
  • isalpha 检查str是否只包含字母
name = 'abd123'
name2 = 'qazwsx'
name3 = '@qazwsx'
print(name.isalpha())  # 返回值:False
print(name2.isalpha())  # 返回值:True
print(name3.isalpha())  # 返回值:False
  • isdecimal 检查str是否是包含十进制
name = 'abd123'
name2 = '123456'
# 字符串是否只包含十进制字符返回True,否则返回False
print(name.isdecimal())  # 返回值:False
print(name2.isdecimal())  # 返回值:True
  • isdigit 检查str是否是数字
name = 'abd123'
name2 = '123456'
# 字符串是否是数字
print(name.isdigit())  # 返回值:False
print(name2.isdigit())  # 返回值:True
  • isidentifier 检查是不是一个合法的标识符,就是看是否合法的变量名
name = 'abd123'
name2 = '123456'
name3 = '好人'
# 字符串是否是一个合法的变量名
print(name.isidentifier())  # 返回值:True
print(name2.isidentifier())  # 返回值:False
print(name3.isidentifier())  # 返回值:True
  • isnumeric 类似isdigit,不建议使用
  • isspace
name = 'abd 123'
name2 = '    '
# 检查str是否是空格
print(name.isspace())  # 返回值:Fasle
print(name2.isspace())  # 返回值:True
  • title
  • istitle
name = 'abd 123'
name2 = 'IAMNICEGUY'
name3 = 'I AM NICE GUY'
name4 = 'I Am Nice Guy'
# 检查str是不是一个主题
print(name.istitle())  # 返回值:Fasle
print(name2.istitle())  # 返回值:Fasle
print(name3.istitle())  # 返回值:Fasle
print(name4.istitle())  # 返回值:True
# title()将str转换成title
print(name.title())  # Abd 123
  • isprintable 字符串是不是可打印,只要不是tty文件或驱动文件,都可以打印。
name = 'abd 123'
# 判断str是否可以打印,只要不是tty,驱动文件,都可以打印
print(name.isprintable())  # 返回值: True
  • isupper
name = 'abd123'
name2 = '123456'
name3 = '好人'
name4 = 'ABC'
# 字符串是否是小写
print(name.islower())  # 返回值:True
print(name2.islower())  # 返回值:False
print(name3.islower())  # 返回值:False
print(name4.islower())  # 返回值:False
  • islower
name = 'abd123'
name2 = '123456'
name3 = '好人'
name4 = 'ABC'
# 字符串是否是大写
print(name.isupper())  # 返回值:False
print(name2.isupper())  # 返回值:False
print(name3.isupper())  # 返回值:False
print(name4.isupper())  # 返回值:True
  • join 比较常用
name = ['a', 'b', 'c', '1', '2', '3']
name2 = 'abc123'
print(''.join(name))  # 返回值:abc123
print(' '.join(name))  # 返回值:a b c 1 2 3
print('='.join(name))  # 返回值:a=b=c=1=2=3
# 将原有的srt嵌在join里面,注意join里面的内容不能只有一个
print(name2.join('=='))  # 返回值:=abc123=
print(name2.join('+++'))  # 返回值:+abc123+abc123+
  • ljust
  • rjust
name = 'abc123'
#保证一句从左边开始,且长度保证是5,如果不足用#补
print(name.ljust(5,'#'))  # abc123
#保证一句从右边边开始,且长度保证是5,如果不足用#补
print(name.rjust(5,'#'))  # abc23
#保证一句从左边开始,且长度保证是10,如果不足用#补
print(name.ljust(10,'#'))  # abc123####
#保证一句从右边开始,且长度保证是10,如果不足用#补
print(name.rjust(10,'#'))   # ####abc123
  • lower 将str全部转成小写
  • upper 将str全部转成大写
  • swapcase 将str大写转小写,小写转大写
name = 'abc123ABC'
print(name.lower())  # abc123abc
print(name.upper())  # ABC123ABC
print(name.swapcase())  # ABC123abc
  • lstrip 取掉左边的回车或空格,中间的不管
  • rstrip 取掉右边的回车或空格,中间的不管
  • strip 掉两边的回车或空格,中间的不管
name = '\nabc\n123\n'
print('-------')  # black
print(name)
print('\033[32;1m-------\033[0m')  # green
# 取掉左边的回车或空格
print(name.lstrip())
print('\033[31;1m-------\033[0m')  # red
# 取掉右边的回车或空格
print(name.rstrip())
print('\033[33;1m-------\033[0m')  # yellow
# 取掉两边的回车或空格
print(name.strip())
print('\033[34;1m-------\033[0m')  # blue
  • striplines
  • makestrans
  • translate
name = 'Whatever is worth doing is worth doing well.'
# p = {97: 49, 98: 50, 99: 51, 100: 52, 101: 53, 102: 54}
p = str.maketrans('abcdef','123456')
# 将p字典内的ASCII码重新通过translate传给name用
print(name.translate(p))  # Wh1t5v5r is worth 4oing is worth 4oing w5ll.
  • replace
name = 'Whatever is worth doing is worth doing well.'
# 将srt中的a换成@,默认是都更换
print(name.replace('a','@'))
# 将str中的o换成0,只更换2个(从左到右)
print(name.replace('o','0',2))
# 将str中的i换成1,这样是所有的i都替换成1
print(name.replace('i','1',-2))
  • split
name = "name1 name2"
name2 = "name1|name2"
name3 = "name|name"
# split默认将空格作为分割,同时去除了空格,生成一个列表
print(type(name.split()),name.split())  # <class 'list'> ['name1', 'name2']
# split将 | 作为分割,并生成列表
print(name2.split('|'))  # ['name1', 'name2']
# split将 me 作为分割,并生成列表
print(name3.split('me'))  #['na', '|na', '']
  • splitlines 适应在不同系统中的换行,将字符串用换行分割,并生成列表
name = "name1\nname2"
# splitlines 按换行符号分割,并生成列表
print(name.splitlines())  # ['name1', 'name2']
print(name.split('\n'))  # 等同上面的代码
  • zfill 不足长度用0补。一般用于二进制位数不足时用
name = 'abc123'
print("Name's len is ",len(name))
# 将字符串的长度变成10位,不足的用0补
print(name.zfill(10))  # 0000abc123
# 将字符串的长度变成5位,不足的用0补
print(name.zfill(5))  # abc123
写在后面
  • 字符串也可以切片,因为find,rfind和index
  • join的用法,需要掌握。
  • makestrans 和translate可以玩出来随机字符串,且加密的效果,结合random模块一起。
  • replace,旧在前,新在后,数量是正数。
  • splitlines,并非多此一举,在linux上,回车是\n,在windowns上,回车是\r\n
  • zfill,一般用在16进制填充需要。

转载于:https://www.cnblogs.com/gzz041/p/7066799.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值