Python基础---字符串
Posted 风缘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础---字符串相关的知识,希望对你有一定的参考价值。
字符串(String)
定义:一系列字符;
在Python中,使用 \' \' or " "括起来的都是字符串;
是Python中最常用的一种数据类型(datatype)。
常用操作:
1、连接操作[ + ]:
x = str1 + str2
1 var1 = \'123\'
2 var2 = \'456\'
3 var3 = var1 + var2
4 print(var3)
5 --->123456
2、复制操作[ * ]:
x = str1 * n n必须为整数。
1 var1 = \'123\'
2 var4 = var1 * 3
3 print(var4)
4 --->123123123
3、索引操作[ [] ]:
x = str[n] n为x在字符串中的位置;Python中,正数从0开始计数,倒数从-1开始。
1 var1 = \'abcde0\'
2 var2 = var1[0]
3 print(var2)
4 --->a
4、切片操作[ [ : : ] ]:
x = str[a : b : c] a 为起始位置,b 为终止位置(在结果中,不包含 b 值),c 为索引增加的值(默认为1)。
如果进行复制,可使用 [:]
如果进行倒数排序,可使用[:: -1]
1 var1 = \'abcde0\'
2 var2 = var1[0:3]
3 print(var2)
4 --->abc
5
6 var1 = \'abcdefghijklmnopqrstuvwxyz\'
7 var2 = var1[0:15:2]
8 print(var2)
9 --->acegikmo
5、成员检查[ in & not in ]:
检查x是否在字符串中,返回bool值;
\'x\' in str \'x\' not in str
1 var1 = \'ABCDEFG\'
2 print(\'A\' in var1)
3 print(\'A\' not in var1)
4 --->True
5 --->False
6、原始字符串[ r & R]:
所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。
原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
r"str"
1 var1 = r\'A\\nB\\\\C\\\'D\\"EFG\'
2 print(var1)
3 --->A\\nB\\\\C\\\'D\\"EFG
字符串中的转义字符:需要在字符中使用特殊字符时,python用反斜杠(\\)转义字符。
1、续行符:\\ 在行尾时使用
1 var1 = \'ABCDE\\
2 FG\'
2、反斜杠符号:\\\\ 在输出的字符串中显示一个\\
1 var1 = \'ABCDE\\\\FG\'
2 print(var1)
3 --->ABCDE\\FG
3、单&双引号:\\\' & \\" 在输出的字符串中显示一个 \' 或 "
1 var1 = \'ABC\\"DE\\\'FG\'
2 print(var1)
3 --->ABC"DE\'FG
4、空:\\000 在输出的字符串中显示一个空格
1 var1 = \'ABCDE\\000FG\'
2 print(var1)
3 --->ABCDE FG
5、换行:\\n 将字符串输出为两行
1 var1 = \'ABCDE\\nFG\'
2 print(var1)
3 --->ABCDE
4 --->FG
6、横向&纵向制表符:\\t & \\v
1 var1 = \'\\tABCDEFG\'
2 print(var1)
3 ---> ABCDEFG
字符串相关常用函数:
1、capitalize(): 将字符串第一个字符大写
1 var1 = \'hello_world\'
2 print(var1.capitalize())
3 --->Hello_world
2、title(): 返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写
1 var1 = \'hello_world\'
2 print(var1.title())
3 --->Hello_World
3、upper() & lower(): 将所有字符大写&小写
1 var1 = \'hello_world\'
2 print(var1.upper())
3
4 var2 = \'ABCDEFG\'
5 print(var2.lower())
6
7 --->HELLO_WORLD
8 --->abcdefg
4、swapcase(): 字符串中大小写互换
1 var2 = \'ABcdeFG\'
2 print(var2.swapcase())
3 --->abCDEfg
5、len(): 获取字符串长度
1 var1 = \'hello_world\'
2 print(len(var1))
3 --->11
6、count():统计字符串中指定字符的出现次数
count(\'x\', a, c) \'x\' 为指定字符;a,b为起始和终止区间范围(区间不包含 b ;默认为查找全部区间)
1 var = \'abcdergaaaawerwasfwwweaatse\'
2 print(var.count(\'a\'))
3 --->8
4 print(var.count(\'a\', 0, 15))
5 --->5
7、find() & index(): 查找指定字符在字符串中第一次出现的位置
find():找到后会返回指定字符在字符串中的索引,如果不存在,则返回 -1
index():用法同find(),但是 如果不存在,则会报错
1 var1 = \'hello_world\'
2 print(var1.find(\'l\'))
3 --->2
4 print(var1.find(\'g\'))
5 --->-1
6 print(var1.index(\'l\'))
7 --->2
8 print(var1.index(\'g\'))
9 --->Traceback (most recent call last):
10 File "文件路径", line 5, in <module>
11 print(var1.index(\'g\'))
12 ValueError: substring not found
8、split(): 使用特定字符将字符串切割成多个字符串组成的列表
str.split(str="", num=string.count(str)) 参数num为分割次数
1 var1 = \'hello_world_hello_China\'
2 print(var1.split(\'_\'))
3 --->[\'hello\', \'world\', \'hello\', \'China\']
4 print(var1.split(\'_\', 1))
5 --->[\'hello\', \'world_hello_China\']
9、splitlines(): 按照行(\'\\r\', \'\\r\\n\', \\n\')分隔,返回一个包含各行作为元素的列表
str.splitlines([keepends]) keepends在输出结果里是否去掉换行符(\'\\r\', \'\\r\\n\', \\n\'),默认为 False,不包含换行符,如果为 True,则保留换行符
1 var1 = \'a\\nbcd\\ref\\r\\nghij\\rklmn\'
2 print(var1.splitlines())
3 --->[\'a\', \'bcd\', \'ef\', \'ghij\', \'klmn\']
4 print(var1.splitlines(True))
5 --->[\'a\\n\', \'bcd\\r\', \'ef\\r\\n\', \'ghij\\r\', \'klmn\']
10、join(): 将序列中的元素以指定的字符连接生成一个新的字符串(相当于split的反向操作)
str.join(sequence) sequence为要连接的元素序列
1 list1 = [\'a\', \'b\', \'c\', \'d\', \'e\']
2 var1 = \'-\'.join(list1)
3 print(var1)
4 --->a-b-c-d-e
11、strip(chars) |--两边--|
lstrip(chars) 将字符串的--|--起始--|--符号去掉,默认去除空格;将指定符号去掉后,空格补位
rstrip(chars) |--末尾--|
chars为指定字符
1 var1 = \' abcd \'
2 var2 = \'@@abc@@\'
3 print(var1.strip())
4 --->abcd
5 print(var1.lstrip())
6 --->abcd
7 print(var1.rstrip())
8 ---> abcd
9 print(var1.strip(\'@\'))
10 ---> abcd
12、zfill(): 0的填充效果(常用于数据库中数据的存储)
center(width, fillchar) |--居中
ljust(width, fillchar) 使用指定字符填充字符串,原有字符串内容--|--居左
rjust(width, fillchar) |--居右
width为新字符串的总长度,fillchar为要填入的字符
*warning*:
- 不提供 fillchar 参数则默认为空格
- 当 width 参数小于等于原字符串的长度时,原样返回
- 无法使左右字符数相等时候,右侧字符会比左侧少 1
1 var1 = \'abcd\'
2 print(var1.zfill(10))
3 --->000000abcd
4 print(var1.center(9, \'¥\'))
5 --->¥¥¥abcd¥¥
6 print(var1.ljust(9, \'¥\'))
7 --->abcd¥¥¥¥¥
8 print(var1.rjust(9, \'¥\'))
9 --->¥¥¥¥¥abcd
13、maketrans() 和 translate():字符串替换操作
str.maketrans(intab, outtab, deletechars) intab -- 字符串中要替代的字符组成的字符串
outtab -- 相应的映射字符的字符串
deletechars -- 字符串中要删除的字符列表
str.translate(table) table -- 翻译表,翻译表是通过maketrans方法转换而来
1 var1 = \'ABcdABefffffffff\'
2 var2 = \'\'.maketrans(\'AB\', \'你好\', \'f\')
3 var3 = var1.translate(var2)
4 print(var3)
5 --->你好cd你好e
14、字符串的检测:
1、starswith(suffix, start, end):检测字符串是否以指定的字符开头 suffix为一个字符串或者一个元素,start,end为检索字符串的起始和终止位置,返回bool值
endswith(suffix, start, end):-----------------------------结尾
1 var1 = \'abcabdcsidjsffwaiddddksf\'
2 print(var1.startswith(\'ab\'))
3 --->True
4 print(var1.endswith(\'ddd\'))
5 --->False
2、isalnum():如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
isalpha():如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
1 var1 = \'abcabdcsidjsffwaiddddksf\'
2 var2 = \'22323\'
3 print(var1.isalnum())
4 --->True
5 print(var2.isalpha())
6 --->False
3、isdigit(): 如果字符串只包含数字则返回 True 否则返回 False..
isnumric(): 如果字符串中只包含数字字符,则返回 True,否则返回 False
isdecimal(): 检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
注意:定义一个十进制字符串,只需要在字符串前添加 \'u\' 前缀即可。
以下黑体内容引用自本站 降龙伏虎 博客:http://www.cnblogs.com/jebeljebel/p/4006433.html,
非常感谢前辈总结出来的结果!
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无
isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)
isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)
以上是关于Python基础---字符串的主要内容,如果未能解决你的问题,请参考以下文章