python3之字符串(string)

一、字符串

字符串是Python中最常用的数据类型

Python中的字符串必须用引号括起来,单引号或双引号都可以,两者没有任何区别

字符串是不可更改类型

 

1 普通字符串

str = 'value'
str = "value"
str = '''value'''
str = """value"""

三个引号时,字符串的值可以跨行

 

2  转义字符

\(在行尾时)      续行符    
\\              反斜杠符号(\)
\'              单引号    
\"              双引号
\n              换行
\t              横向制表符
\r              回车
\a              响铃     
\b              退格     
\000或\0        空     
\v              纵向制表符     
\f              换页     
\0yy            yy是两个八进制数,\012表示换行     
\xyy            yy是两个十六进制数,\x0a表示换行     
\other          other是除以上列举的其它字符,其它字符则以普通格式输出

 

3 原始字符串

把反斜线('\')进行转义,反斜线当做普通字符处理

str = r'value'       
value里面的反斜线不会当做特殊字符
原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法

 

二、字符串操作

1 索引

str = r'https://docs.python.org/release/3.8.4/tutorial/introduction.html'

#从str中取出index=4的单个字符
str[4]

#从str取出倒数第8个字符,最右边字符的index=-1
str[-8]

#切片,从str取出index范围为[6,15)(不包括15)的子字符串
str[6:15]

#切片,从str取出index范围为[3,-4)(不包括-4)的子字符串
str[3:-4]

#切片,从str取出index范围为[-7,-2)(不包括-2)的子字符串
str[-7:-2]

单个字符时,超出索引会引发IndexError异常
切片时,超出索引不会引发异常

 

2  运算

str1 = 'asdTE'
str2 = 'QAZcd'

#字符串拼接    
str3 = (str1 + str2)

#重复字符串4次
str4 = str1 * 4

#获取字符串的长度
len(str4)

#判断字符串是否包含子字符串,包含返回 True,否则返回 False
'dT' in str1
'ASQW' in str1

#判断字符串是否不包含子字符串,不包含返回 True,否则返回 False
'QAZ' not in str2
'RTY' not in str2

 

三、字符串方法

1 计数、格式转化

str.center(width, fillchar)
#字符串两边填充字符并居中,返回长度为width的字符串
#width: 宽度,整数,小于等于len(str),返回str
#fillchar: 可选参数,填充字符,默认空格

str.count(sub, start, end)
#[start, end)范围内(不包括end),返回子字符串sub在字符串中出现的次数
#start,end: 可选参数,默认范围 range(0,len(str))

str.encode(encoding='utf-8', errors='strict')
#返回以encoding编码格式的字节串
#encoding: 编码格式,默认utf-8
#errors: 编码错误时处理方案,默认strict: 编码错误会引发 UnicodeError 异常,其他值: 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace'

str.format(*args, **kwargs)
#字符串格式化

 

2 开头、结尾

str.endswith(suffix, start, end)
#[start, end)范围内(不包括end),字符串是否以suffix结尾,若是返回 True,否则返回 False
#start, end: 可选参数,默认范围 range(0,len(str))

str.startswith(prefix, start, end)
#[start, end)范围内(不包括end),字符串是否以prefix开头,若是返回 True,否则返回 False
#start, end: 可选参数,默认范围 range(0,len(str))

 

3 查找、替换

str.find(sub, start, end)
#[start, end)范围内(不包括end),返回子字符串sub第一次出现的索引值,否则返回-1
#start, end: 可选参数,默认范围 range(0,len(str))

str.index(sub, start, end)
#类似于str.find(),但是找不到子字符串sub时会引发 ValueError 异常

str.replace(old, new, count)
#返回 new 替换 old 后的字符串,不改变原来的字符串
#count: 最多替换次数,默认替换所有

 

4 判断

str.isalnum()
#字符串非空,且所有字符都是字母或数字,返回 True,否则返回 False

str.isalpha()
#字符串非空,且所有字符都是字母,返回 True,否则返回 False

str.isascii()
#字符串空,或者所有字符都是ASCII,返回 True,否则返回 False

str.isdecimal()
#字符串非空,且所有字符都是十进制字符,返回 True,否则返回 False

str.isdigit()
#字符串非空,且所有字符都是数字,返回 True,否则返回 False

str.isnumeric()
#字符串非空,且只包含数字字符,则返回 True,否则返回 False

str.islower()
#字符串至少包含一个区分大小写的字符,且所有字符都是小写,返回 True,否则返回 False

str.istitle()
#字符串至少包含一个区分大小写的字符,且每个单词首字母都是大写,返回 True,否则返回 False

str.isupper()
#字符串至少包含一个区分大小写的字符,且所有字符都是大写,返回 True,否则返回 False

str.isspace()
#字符串非空,且字符串中只有空白字符,返回 True,否则返回 False

 

5 大小写

str.title()
#返回将字符串每个单词首字母大写后的新字符串,不改变原来的字符串

str.lower()
#返回将字符串所有字母小写后的新字符串,不改变原来的字符串

str.upper()
#返回将字符串所有字母大写后的新字符串,不改变原来的字符串

 

6 删除

str.strip(chars)
#返回删除字符串前后(不包括中间)包括chars所有组合后的新字符串,不改变原来的字符串
#chars: 要删除的字符的所有组合,默认空格

str.lstrip(chars)
#返回删除字符串前面(左边)包括chars所有组合后的新字符串,不改变原来的字符串
#chars: 要删除的字符的所有组合,默认空格

str.rstrip()
#返回删除字符串后面(右边)包括chars所有组合后的新字符串,不改变原来的字符串
#chars: 要删除的字符的所有组合,默认空格

 

7 分隔、拼接

str.split(sep=None, maxsplit=-1)
#使用分隔符sep将字符串分隔,并返回一个列表
#sep: 分隔符
#maxsplit: 分割字符串的长度,未指定maxsplit或-1则分割全部字符串
#如:'I am boy'.split('a')输出['I ', 'm boy']

str.join(iterable)
#将iterable中所有的元素以str作为分隔符合并拼接,并返回为一个新的字符串
#iterable包含任何非字符串值时(包括字节串),会引发 TypeError 异常
#如: '-'.join(['a','b','c'])输出a-b-c

 

posted @ 2020-07-19 18:56  junffzhou  阅读(431)  评论(0编辑  收藏  举报