python中字符串的所有操作

#三引号括起来的字符串可以为多行
a = '''正在 Ping www.baidu.com [220.181.112.244] 具有 32 字节的数据:
来自 220.181.112.244 的回复: 字节=32 时间=190ms TTL=53
来自 220.181.112.244 的回复: 字节=32 时间=59ms TTL=53
来自 220.181.112.244 的回复: 字节=32 时间=83ms TTL=53
来自 220.181.112.244 的回复: 字节=32 时间=125ms TTL=53

220.181.112.244 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 59ms,最长 = 190ms,平均 = 114ms'''

以下为字符串基本用法

求长度:

使用len()函数

print('这个字符串的长度为:',len(a))
#这个字符串的长度为: 351

索引

使用:a[索引数] 可以得到该位置的元素

print('这个字符串的第一个字符为:',a[0])
print('这个字符串的最后一个字符为:',a[-1])

切片

使用: a[开始位置:结束位置:步数与顺序]
注: 区间为左闭右开

print('这个字符串的前三个字符为:',a[:3])
print('这个字符串的最后两个字符为:',a[-2:])
print('倒序输出字符串:',a[::-1])
print('这个字符串的跳位输出',a[::2])

字符串内查找特定字符 index,find

这两个函数都会返回所找元素的索引
注意: 尽量使用find,因为若在字符串中没有找到,index会直接报错,程序中断,而find会返回-1,不会中断程序

寻找第一个w的位置
print('这个字符串内第一个w字符的位置是:',a.index('w'))
print('这个字符串内第一个w字符的位置是:',a.find('w'))
寻找第二个w的位置
print('这个字符串内第二个w字符的位置是:',a.index('w',a.index('w')+1))
print('这个字符串内第二个w字符的位置是:',a.find('w',a.find('w')+1))
查找最后一次出现某字符的位置:
print('这个字符串内最后一次出现w字符的位置是:',a.rfind('TTL'))
可以指定某范围内查找某字符
print('这个字符串内索引100~200内出现w字符的位置是:',a.find('TTL',100,200))
查看字符串的原始形式:

使用repr()函数

print('字符串原始形式:',repr(a))
使用find函数获得百度的ip地址
start_1 = a.find('[')+1
end_1 = a.find(']')
print('百度的IP地址为:',a[start_1:end_1])

以下为字符串的进阶用法

字符串可用方法

可以对字符串进行的操作查看:dir()函数

>>> dir(a)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

a.capitalize ()和a.title()首字母大写
区别在于capitalize()函数只是在整个字符串的首字母大写,title是将每个单词的首字母都大写

a.center(60,’-’)
将总字符串长度用指定符号(’-’)扩充到60,并将原字符串居中

a.ljust(60,’-’)
将总字符串长度用指定符号(’-’)扩充到60,并将原字符串居左

a.rjust(60,’-’)
将总字符串长度用指定符号(’-’)扩充到60,并将元字符串居右

a.count(‘3’)
统计字符串中出现3的次数

编码与解码

encode()编码
decode()解码

print('中国的utf-8编码为:','中国'.encode())
print('中国的gbk编码为:','中国'.encode('GBK'))
print('中国的utf-8解码为:',b'\xe4\xb8\xad\xe5\x9b\xbd'.decode())
print('中国的GBK解码为:',b'\xd6\xd0\xb9\xfa'.decode('GBK'))

可得结果为:
中国的utf-8编码为: b’\xe4\xb8\xad\xe5\x9b\xbd’
中国的gbk编码为: b’\xd6\xd0\xb9\xfa’
中国的utf-8解码为: 中国
中国的GBK解码为: 中国

开始结束标志检测

使用startswith检测初始位置
使用endswith检测结尾位置

print('李四姓张吗?','李四'.startswith('张'))
print('123.txt是文本文件吗:','123.txt'.endswith('txt'))

李四姓张吗? False
123.txt是文本文件吗: True

判断字符串的结构

isalnum #判断是否是由字母和数字组成
isalpha# 判断是否是字母组成
isascii#判断是否是由ascii字符组成
isdigit#判断是否是由数字组成
istitle#判断是否是由标题组成
isupper#判断是否是由大写字母组成
islower#判断是否是由小写字母组成

print('abc123是全部由字母和数字组成的吗?','abc123'.isalnum())
print('abc123是全部由字母组成的吗?','abc123'.isalpha())
print('abc123全部是ascii字符?','abc123'.isascii())#若acsii值小于250则是acsii字符
print('123是全部是数字吗?','123'.isdigit())
print('abc是全部由小写字母组成的吗?','abc'.islower())
print('abcABC是全部由大写字母组成的吗?','abcABC'.isupper())
print('Abc是标题吗?','Abc'.istitle())
拆分split和组合join

注意 split只会把字符串分割为列表,join将

print("192.168.0.1".split('.'))
print('a b sd f'.split())
print('-'.join(['192','168','0','1']))
print(''.join(['192','168','0','1']))

结果依次为:
[‘192’, ‘168’, ‘0’, ‘1’]
[‘a’, ‘b’, ‘sd’, ‘f’]
192-168-0-1
19216801

strip去除字符串两边的特定字符
print('   af    '.strip()) #去除两边的空格
print('----af-+-+-'.strip('-'))#去除两边特定的符号

结果为:
af
af-±+

replace替换 replace(目标,替换,次数)
print('百度是世界上最好的搜索引擎'.replace('百度','谷歌'))

可得结果为:谷歌是世界上最好的搜索引擎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值