字符串类型(string)
字符串是以单引号‘
或双引号"
括起来的任意文本,比如‘abc‘
,"123"
等等。
请注意,‘‘
或""
本身只是一种表示方式,不是字符串的一部分,因此,字符串‘abc‘
只有a
,b
,c
这3个字符。如果‘
本身也是一个字符,那就可以用""
括起来,比如"I‘m OK"
包含的字符是I
,‘
,m
,空格,O
,K
这6个字符。
1、创建字符串
b = ‘asdasd‘
2、字符串操作
a.重复输出字符串
print(‘Python‘ * 5)
>>>PythonPythonPythonPythonPython
b.通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表
print(‘hello world‘[2:])
>>>llo world
c.in 成员运算符 - 如果字符串中包含给定的字符返回 True
print(‘rl‘ in ‘hello world‘)
>>>True
d.%格式字符串
print("she sis a good girl") print("she sis a %s girl" % ‘good‘)
>>>she is a good girl
>>>she is a good girl
e.字符串拼接a
a = ‘zxc‘ b = ‘asd‘ c = ‘qwe‘ print(a+b+c)
>>>zxcasdqwe
以上方式效率极低,建议用join做字符串拼接
a = ‘zxc‘ b = ‘asd‘ c = ‘qwe‘ print(‘‘.join([a,b,c])) print(‘+‘.join([a,b,c]))
>>>zxcasdqwe
>>>zxc+asd+qwe
3、字符串内置方法
capitalize把字符串的第一个字符大写,且不会修改原字符串,返回一个新的字符串
a = ‘hello world!‘ print(a.capitalize())
>>>Hello world!
center返回一个原字符串居中,并使用*填充至长度 20 的新字符串
a = ‘asd‘ print(a.center(20,‘*‘))
>>>********asd*********
count统计字符串中元素的个数
a = ‘hello world!‘ print(a.count(‘l‘))
>>>3
endswith判断是否以某个内容结尾,返回布尔值
a = ‘hello world!‘ print(a.endswith(‘ld!‘))
>>>True
startswith判断是否以某个内容开始,返回布尔值
expandtabs(tabsize=8)把字符串中的tab符号转为空格,tab默认空格数是8.
a = ‘hello\t worl\td!‘ print(a.expandtabs(tabsize=10))
>>>hello worl d!
string.find(str, beg=0, end=len(string))检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
a = ‘hello world!‘ print(a.find(‘or‘)) print(a.find(‘or‘,5,9)) print(a.find(‘or‘,2,5))
>>>7
>>>7
>>>-1
string.index(str, beg=0, end=len(string))跟find()方法一样,只不过如果str不在 string中会报一个异常.
a = ‘hello world!‘ print(a.index(‘or‘)) print(a.index(‘or‘,5,9)) print(a.index(‘or‘,1,3))
>>>7
>>>7
>>>Traceback (most recent call last):
File "str.py", line 6, in <module>
print(a.index(‘or‘,1,3))
>>>ValueError: substring not found
string.isalnum()如果string所有字符都是字母或数字则返回 True,否则返回 False
a = ‘helloworld‘ b = ‘123123‘ c = ‘python3‘ d = ‘python 3‘ print(a.isalnum()) print(b.isalnum()) print(c.isalnum()) print(d.isalnum())
>>>True
>>>True
>>>True
>>>False
string.isalpha()如果 string 所有字符都是字母则返回 True,否则返回 False
a = ‘helloworld‘ c = ‘python3‘ print(a.isalpha()) print(c.isalpha())
>>>True
>>>False
string.isdecimal()如果 string 只包含十进制数字则返回 True 否则返回 False.
string.isdigit()如果 string 只包含数字则返回 True 否则返回 False.
string.islower()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
string.isnumeric()如果 string 中只包含数字字符,则返回 True,否则返回 False True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字 False: 汉字数字 Error: 无 True: Unicode数字,,全角数字(双字节) False: 罗马数字,汉字数字 Error: byte数字(单字节) True: Unicode数字,全角数字(双字节),罗马数字,汉字数字 False: 无 Error: byte数字(单字节) string.
string.istitle()如果 string 是标题化的(见 title())则返回 True,否则返回 False
a = ‘hello world‘ b = ‘Hello World‘ print(a.istitle()) print(b.istitle())
>>>False
>>>True
string.isupper()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
string.join(seq)以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
= b = (.join()) (.join([b]))
>>>M+Y+ +G+I+R+L
>>>MY GIRL$xxxx
string.ljust(width)返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
= (.ljust())
>>>MY GIRL-------------
string.lower()转换 string 中所有大写字符为小写.
string.lstrip()截掉 string 左边的空格
string.maketrans(intab, outtab])用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
= (.maketrans())
>>>{120: 98}
max(str)返回字符串 str 中最大的字母。
min(str)返回字符串 str 中最小的字母。
string.partition(str)有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
string.replace(str1, str2, num=string.count(str1)) 把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
string.rfind(str, beg=0,end=len(string) )类似于 find()函数,不过是从右边开始查找.
string.rindex( str, beg=0,end=len(string))类似于 index(),不过是从右边开始.
string.rjust(width)返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.rpartition(str)类似于 partition()函数,不过是从右边开始查找.
string.rstrip()删除 string 字符串末尾的空格.
string.split(str="", num=string.count(str))以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
# string.splitlines(num=string.count(‘\n‘)) 按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行.
# string.startswith(obj, beg=0,end=len(string)) 检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
# string.strip([obj]) 在 string 上执行 lstrip()和 rstrip()
# string.swapcase() 翻转 string 中的大小写
# string.title() 返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
# string.translate(str, del="") 根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 del 参数中
# string.upper() 转换 string 中的小写字母为大写
原文:http://cqtesting.blog.51cto.com/8685091/1958786