Fork me on GitHub

Python基础_字符串

(如有错漏,欢迎斧正)

俗话说基础不牢,地动山摇。Python的字符串处理虽然是基础中的基础,但是你要是给套笔试题,让人来试着写写,相信我,还是有不少人会傻眼的。(本文针对新手小白,熟手可自动略过^_^)

考虑时代发展,Python 2的版本的维护迟早会结束,故这个系列的文章都是以Python3.5+运行成功为基准,代码编写尽力兼容Python 2.7.X。

Overview

Python3和Python2最大的差异之一就是编码的变化,在python3中,所有的字符串都是Unicode编码

字符串是Pytho中最常用的数据类型之一,但是,字符串特殊之处在于还有一个编码问题。
而在全世界有上百种语言,中国把中文编到GB2312编码中,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里……各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。

因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。(想要了解更多关于Unicode的信息,请看文末参考链接。)

字符串的表示

在实际开发中,我们很多时间都是在做字符串处理,如字符串连接、切割、转换、格式化等。
而字符串的表示也很方便,通常我们使用引号(单引号’ 或 双引号” 或 三引号”””)来创建字符串。

1
2
3
4
5
6
7
8
s1 = u'我是字符串1'

s2 = u"我是字符串2"

s3 = """我是字符串1
我是字符串2
我还是字符串3
"""

由上可知,三引号括起来的字符串可以有多行。

字符串常用API

在python中提供了以下函数完成连接和切割功能:

join
以指定的字符串将元组、列表中的所有的元素合并为一个新的字符串。

split
以指定的分隔符来截取字符串,返回一个list对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14

t = ('1', '2', '3', 'a', 'b', "efg") # tuple

# 用 ~ 将t中元素合并成一个新的字符串
str_demo = '~'.join(t)
print(str_demo)

# 将str_demo以~进行切割
str_set = str_demo.split('~')
print(str_set)

# 将t中元素合并成一个新的字符串
str_demo = ''.join(t)
print(str_demo)

PyCharm输出结果如下:
1~2~3~a~b~efg # 合并为新字符串
[‘1’, ‘2’, ‘3’, ‘a’, ‘b’, ‘efg’] # 以目标字符切割字符串
123abefg # 合并成一个新的字符串

小结

Python string的API有很多,如果不熟悉用法最好的机会看官方文档或者源代码。这里只介绍了两个最常用的API,以后有空再写其他的。

Reference

廖雪峰Python3教程–字符串和编码

-------------  Fin    Thanks for reading!  -------------

本文标题:Python基础_字符串

文章作者:TesterCC

发布时间:2017年08月30日 - 22:08

最后更新:2018年01月01日 - 01:01

原始链接:http://blog.fullstackpentest.com/Python基础-字符串.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。