[Python核心技术与实战学习] 04 字符串

 

字符串基础

什么是字符串呢?字符串是由独立字符组成的一个序列。通常包含在单引号('') 双引号("" ) 或者三引号之中(''' ''' 或 """ """ , 两者一样)

string1 = 'teststring1'
string2 = "teststring2"
string3 = """teststring3"""
string4 = '''teststring4'''

16846478-ab1e72a3151cd241.png

string.png

支持转义字符
常见的的转义字符

转义字符说明
(在行尾时) 续行符
\反斜杠符号
'单引号
"双引号
\a响铃
\b退格(Backspace)
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
\oyy八进制数,yy代表的字符,例如:\o12代表换行
\xyy十六进制数,yy代表的字符,例如:\x0a代表换行
\other其它的字符以普通格式输出

参见 http://www.runoob.com/python3/python3-string.html

字符串的常见操作

可以把字符串想象成一个由单个字符组成的数组, Python 的字符串同样支持索引, 切片和遍历等等操作。

 

16846478-58a02b58f4c39c3a.png

string.png

Python 的字符串是不可变的(immutable)

16846478-4470fa9868ab66ad.png

immutable.png

 

符串的改变
Python 中字符串的改变, 通常只能通过创建新的字符串来完成。

方法一:s = 'H' + s[1:]
方法二:s = s.replace('h', 'H')

16846478-1a9f3c3dfdcb08c9.png

image.png

老版本的 Python , 每次想要改变字符串, 往往需要 O(n) 的时间复杂度, 其中, n 为新字符串的长度。

Python2.5 开始, 每次处理字符串的拼接操作时(str1 += str2) , Python 先会检测 str1 还有没有其他的引用。 如果没有的话, 就会尝试原地扩充字符串 buffer 的大笑,而不是重新分配一块内存来创建新的字符串并拷贝。

字符串拼接
1、加法操作符 str1 += str2
2、内置的 join 函数 string.join(iterable), 表⽰把每个元素都按照指定的格式连接起来

16846478-a457d0fdaf6c5f1a.png

join.png

字符串的分割
分割函数 split(separator)、strip(str)\lstrip(str)\rstrip(str)
string.split(separator), 表示把字符串按照separator 分割成子字符串, 并返回一个分割后子字符串组合的列表。
string.strip(str), 表示去掉首尾的 str 字符串;
string.lstrip(str), 表示只去掉开头的 str 字符串;
string.rstrip(str), 表示只去掉尾部的 str 字符串。

16846478-6bf41c0a9322fc2b.png

image.png

字符串的格式化

参见
Python标准库之string 库:中的 格式字符串语法示例 Format String Syntax examples
https://www.jianshu.com/p/faaa48f4c511

参考资料:

极客时间 Python核心技术与实战学习

Python核心技术与实战(极客时间)链接:
http://gk.link/a/103Sv

Python3 字符串:
http://www.runoob.com/python3/python3-string.html

Python标准库之string 库:
https://www.jianshu.com/p/faaa48f4c511


GitHub链接:
https://github.com/lichangke/LeetCode

知乎个人首页:
https://www.zhihu.com/people/lichangke/

简书个人首页:
https://www.jianshu.com/u/3e95c7555dc7

个人Blog:
https://lichangke.github.io/

欢迎大家来一起交流学习

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值