python学习之字符串的思考

在字符串对象中,始终需要记住字符串对象的值是无法修改的,所有对字符串对象的操作饭后的都是新建立的字符串,原字符串对象是没有发生任何变化的

str转义

在使用+符合拼接字符串时,如果+其中一侧不是字符串时,则需要通过str函数进行转移

>>> "fsdbo"+12
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    "fsdbo"+12
TypeError: Can't convert 'int' object to str implicitly
>>> "fsdbo"+str(12)
'fsdbo12'

查找

在python中,提供了findindex两个方法在特定的字符串中查找其他字符串,findindex方法不同的是如果原字符串中没有字串时返回的不同,find方法直接返回-1,index方法直接ValueError错误

>>> a = "abcdefg"
>>> a.find("bc")
1
>>> a.find("cb")
-1
>>> a.index("bc")
1
>>> a.index("cb")
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    a.index("cb")
ValueError: substring not found
>>> 

切片

关于字符串切片可以把字符串看作列表,然后对列表切片,可以参考我这篇博客

split分割

字符串的分割就是将字符串按照特定格式进去切分,然后返回列表,原字符串不发生改变,split默认以空字符作为分隔符,若原字符串没有分隔符,则直接将元字符作为列表的元素直接返回

>>> a = "ab ac ad af ae"
>>> a.split()
['ab', 'ac', 'ad', 'af', 'ae']
>>> a.split("a")
['', 'b ', 'c ', 'd ', 'f ', 'e']
>>> a.split("df")
['ab ac ad af ae']
>>> 

join拼接

join方法则是和split方法执行相反的操作,join方法是将迭代对象通过特定的连接符进行拼接

>>> a = "ab ac ad af ae"
>>> b = a.split()
>>> print(b)
['ab', 'ac', 'ad', 'af', 'ae']
>>> "+".join(b)
'ab+ac+ad+af+ae'
>>>

判断

1、in 和not in
判断字符串是否存在特定的字串
2、startswith和endswith
判断字符串是否以特定字串开头或结尾

修改

1、删除空白字符串
strip方法返回删除字符串的左右空白的新的字符串对象,lstrip、rstrip分别是返回删除坐空白和右空白字符串的新对象
2、替换
replace是用新的子串替换旧的子串,并返回替换后的新的字符串对象,如果字符串中含有多个旧的子串,都会被替换掉

>>> a = "ab ac ad af ae ac"
>>> a.replace("ac","++")
'ab ++ ad af ae ++'
>>> 

大小转化

capitalize将每句话的首字符大写
lower是将字符串中大写的字符转为小写的字符
upper将字符串中小写的字符转为大写的字符
title将每个词首字符大写
swapcase是将字符串中的大小写互换

>>> a = "ab ac ad af ae"
>>> a.capitalize()
'Ab ac ad af ae'
>>> a.title()
'Ab Ac Ad Af Ae'
>>> b = a.upper()
>>> print(b)
AB AC AD AF AE
>>> a.lower()
'ab ac ad af ae'
>>> a.swapcase()
'AB AC AD AF AE'

其他

len函数返回字符串的长度
count方法是计算字符串中含有特定子串的个数

>>> a = "ab ac ad af ae ac"
>>> len(a)
17
>>> a.count("ac")
2

字符串驻留内存规则

对于符合标识符规则(只包含字母、下划线_、数字)的字符串对象会启动字符串驻留内存机制,相同的字符串对象在内存中之保存一份,对于不符合要求的字符串则不会启动内存驻留机制,

>>> a = "sfdo_21"
>>> b = "sfdo_21"
>>> a is b
True
>>> c = "sdf!"
>>> d = "sdf!"
>>> c is d
False
>>> id(a)
71457848
>>> id(b)
71457848
>>> id(c)
71458016
>>> id(d)
71398040
>>> 

上面代码中,由于a和b的字符串符合标识符规则,所以就能够启动内存驻留机制,c和d的字符串不符合标识符规则,则不启动内存驻留机制

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值