字符串是Python中最常用的数据类型,通常我们使用引号(单引' 或 双引" 或 三引号""")来创建字符串。
在python3中,所有的字符串都是Unicode编码。
对于编程而言,大部分时间都是在做字符的处理,例如字符串连接、切割、转换、格式化等等。
下面我们如何用不同的引号来创建字符串:
a = u'我是字符串'
b = u"我是字符串"
c = """我是字符串
我是字符串
我还是字符串
"""
由上面看出,三引号括起来的字符串可以有多行。
在python中字符串内置函数提供了各种字符串处理能力,下面我们看几个常用的函数应用示例:
在python中提供了以下函数完成连接和切割功能:
下面我们看看具体的代码示例:
# -*- coding:utf-8 -*-
__author__ = u'苦叶子'
if __name__ == "__main__":
t = ('1', '2', '3', '4', '5', 'a', 'b', "efg")
# 用 - 将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)
执行结果如下:
1-2-3-4-5-a-b-efg
['1', '2', '3', '4', '5', 'a', 'b', 'efg']
12345abefg
在python提供了以下函数来实现查找与替换功能。
下面我们一起看下代码示例:
# -*- coding:utf-8 -*-
__author__ = u'苦叶子'
if __name__ == "__main__":
source_str = u"it's my book, please show it, wa ka ka, yo yo yo!"
# 从左往右查找yo
print(u"从左往右查找 yo")
print(source_str.find("yo"))
print(source_str.index("yo"))
# 从右往左查找yo
print(u"从右往左查找 yo")
print(source_str.find("yo"))
print(source_str.rindex("yo"))
# 替换所有的 yo
des_str = source_str.replace("yo", "ha")
print(des_str)
# 替换两次 yo
des_str = source_str.replace("yo", "ha", 2)
print(des_str)
执行结果如下
从左往右查找 yo
40
40
从右往左查找 yo
40
46
it's my book, please show it, wa ka ka, ha ha ha!
it's my book, please show it, wa ka ka, ha ha yo!
去除字符串的空格需要用到以下三个字符串内置函数:
# -*- coding:utf-8 -*-
__author__ = u'苦叶子'
if __name__ == "__main__":
# 去字符串空格示例
demo_str = " 我的前 后 和 中 间 都有空格 "
print(demo_str)
# 去除前面的空格
lstr = demo_str.lstrip()
print(lstr)
# 去除后面的空格
rstr = demo_str.rstrip()
print(rstr)
# 去除前后的空格
str = demo_str.strip()
print(str)
运行结果如下:
我的前 后 和 中 间 都有空格
我的前 后 和 中 间 都有空格
我的前 后 和 中 间 都有空格
我的前 后 和 中 间 都有空格
根据字符串数据来判断其类型,需要用到以下函数:
下看下上述函数的代码示例:
# -*- coding:utf-8 -*-
__author__ = u'苦叶子'
if __name__ == "__main__":
str_1 = "1234567890"
str_2 = "abcdefABCDEF"
str_3 = "12345abcdeABCDE"
str_4 = "abcdef"
str_5 = "ABCDEF"
str_6 = " "
str_7 = " sfsdf "
# isalnum
print(str_3.isalnum())
# isalpha
print(str_2.isalpha())
# isdigit
print(str_1.isdigit())
# islower
print(str_4.islower())
print(str_2.islower())
# isupper
print(str_4.isupper())
print(str_2.isupper())
# isspace
print(str_6.isspace())
print(str_7.isspace())
具体运行结果,你可以将上述代码运行查看实际结果,并可以尝试修改上述代码看看。
本节并未将字符串处理的所有函数都进行实例演示,所以对于其他的函数,请参考官方文档。