前面我们已经介绍了整数、浮点数、复数、字符串、布尔值、空值,今天再详细展开介绍下字符串。
字符串运算符
1.1 字符串的连接
输入:
str1 ="my name is "
str2 ="zhishufenxi"
str3 = str1 + str2
print("str1 =", str1)
print("str2 =", str2)
print("str3 =", str3)
输出:
>>>str1 = my name is
>>>str2 = zhishufenxi
>>>str3 = my name is zhishufenxi
1.2字符串重复输出
输入:
str1 ="zhishufenxi"
str2 = str1 *2
print("str2 =", str2)
输出:
>>>str2 = zhishufenxizhishufenxi
1.3判断字符串是否存在另一个字符串
输入:
str1 ="my name is zhishufenxi"
print("zhishufenxi"instr1)
print("hello"not instr1)
print("hello"instr1)
输出:
转义字符
之前已经介绍过转义字符,这里再另外补充一些,请看示例
2.1 示例
输入:
print('感谢关注,\t智数分析!')#横向制表符
print('感谢关注,\v智数分析!')#纵向制表符
print("感谢关注,\\智数分析!")#反斜杠符号
print('感谢关注,\'智数分析\'!')#单引号
print('感谢关注,\"智数分析\"!')#双引号
print('感谢关注,\n智数分析!')#换行
#多个换行
print('''
感谢
关注
智数分析!
''')
输出:
>>>感谢关注,智数分析!
>>>感谢关注, 智数分析!
>>>感谢关注,\智数分析!
>>>感谢关注,'智数分析'!
>>>感谢关注,"智数分析"!
>>>感谢关注,
智数分析!
>>>感谢
关注
智数分析!
2.2 一个字符串中需要用到多次转义,如果输入多个 \ 会比较麻烦,而且代码可读性会比较差,Python中可以使用 r 来表示默认不转义,比如文件路径。
输入:
print(r"D:\Python\Python36-32")
输出:
>>>D:\Python\Python36-32
字符串截取
3.1 通过索引下标查找字符,注意索引是从0开始
输入:
str1 ="my name is zhi shu fen xi"
print(str1[1])
输出:
3.2 截取字符串中的一部分[x:y],注意:y下标对于的字符不包括。
输入:
str1 ="my name is zhi shu fen xi!"
str2 = str1[3:18]#从第3个字符截取到第20个字符之前,不包括第20个字符
print("str2 = ",str2)
输出:(空格也算一个字符)
>>>str2 = name is zhi shu
输出:
>>>str2 = my name is
>>>str3 = name is zhi shu fen xi!
字符串函数
Python中字符串内建的函数有很多,这里介绍几个常用的。
4.1 返回字符串的长度(字符个数) len(str)
输入:
print(len("my name is zhishufenxi智数分析!"))
输出:
4.2 字母大小写转换 upper() lower()
输入:
str1 ="My nAme Is zhiShuFenxi智数分析!"
print(str1.lower())#大写字母为小写字母,小写不变
print(str1.upper())#小写字母为大写字母,大写不变
print(str1.swapcase())#小写字母为大写字母,大写字母为小写字母
输出:
>>>my name is zhishufenxi智数分析!
>>>MY NAME IS ZHISHUFENXI智数分析!
>>>mY NaME iS ZHIsHUfENXI智数分析!
4.3 字符计数,默认范围为整个字符串 count()
输出:
4.4 从左向右检测某个字符串是否包含在字符串中,可以指定范围,默认整个字符串。返回值是第一次出现的开始下标,如果不包含,则返回-1
输入:
str1 ="my name is zhishufenxi智数分析!"
print(str1.find("zhishufenxi"))
print(str1.find("is"))
print(str1.find("hello",15,len(str1)))
输出:
4.4 替换函数 replace(),被替换字符串、新字符串是必须的参数,最大替换次数为非必须参数。
输入:
str1 ="my name is is is zhishufenxi智数分析!"
print(str1.replace('name','NAME'))
print(str1.replace('is','IS',2))
输出:
>>>my NAME is is is zhishufenxi智数分析!
>>>my name IS IS is zhishufenxi智数分析!
4.5 首字母大写 capitalize() title()
输入:
str1 ="my name is zhishufenxi智数分析!"
print(str1.capitalize())# 首字母大写,其他小写
print(str1.title())#每个单的首字母大写
输出:
>>>My name is zhishufenxi智数分析!
>>>My Name Is Zhishufenxi智数分析!
4.6 字符串截取 strip() lstrip() rstrip(),默认截取空格
输入:
str1 =" my name is zhishufenxi 智数分析! "
print(str1.strip())#截取开头、末尾的空格
print(str1.lstrip())#截取开头的空格
print(str1.rstrip())#截取末尾的空格
str2 ="*****my name is zhishufenxi*****智数分析!*****"
print(str2.strip("*"))#截取开头、末尾的*
print(str2.lstrip("*"))#截取开头的*
print(str2.rstrip("*"))#截取末尾的*
输出:
>>>my name is zhishufenxi 智数分析!
>>>my name is zhishufenxi 智数分析!
>>> my name is zhishufenxi 智数分析!
>>>my name is zhishufenxi*****智数分析!
>>>my name is zhishufenxi*****智数分析!*****
>>>*****my name is zhishufenxi*****智数分析!
领取专属 10元无门槛券
私享最新 技术干货