Python1-06字符串
⼀、Python 字符串
:字符串是由零个或多个字符组成的有限序列。⽽在Python 3中,它有着更明确的意思:字符串是由Unicode码点组成的不可变序列。
字符串序列是⼀种不可变序列,这意味着它不能像可变序列⼀能,进⾏就地修改。例如,在字符串 “Python” 的基础上拼接 “Cat”,得到字符串“PythonCat”,新的字符串是⼀个独⽴的存在,它与基础字符串 “Python” 并没有关联关系。
basename = "Python"
myname = basename + "Cat"
id(basename) == id(myname) # False
字符串是⽤单引号"或双引号""括起来⼀串字符。使⽤三引号创建多⾏字符串。Python 不⽀持单字符类型,单字符在 Python 中也是作为⼀个字符串使⽤。
>>> var1 = 'Hello World!'
>>> var2 = "Jack"
>>> var3 = "" # 空字符串
>>> var4 = "it's apple" # 双引号中可以嵌套单引号
>>> var5 = 'This is "PLANE"!' # 单引号中可以嵌套双引号
>>> var6 = 'what is 'your'name'
SyntaxError: invalid syntax
但是单引号嵌套单引号或者双引号嵌套双引号就会出现歧义。
⼆、Python 字符串运算符
下表实例变量 a 值为字符串 “Hello”,b 变量值为 “Python”:
操
作
符
描述实例
+字符串连接
a + b
‘HelloPython’
*重复输出字符串
a * 2
‘HelloHello’
[]通过索引获取字符串中字符a[1] ‘e’[ : ]截取字符串中的⼀部分a[1:4] ‘ell’in成员运算符 - 如果字符串中包含给定的字符返回 True“H” in a True
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True
“M” not in a
True
r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字⾯的意思来使⽤,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第⼀个引号前加上字母"r"(可以⼤⼩写)以外,与普通字符串有着⼏乎完全相同的语法。
Print(r’\n’) \n
Print(R’\n’) \n
%格式字符串请看输⼊与输出三、Python字符串切⽚操作
· 从左到右索引默认0开始的,最⼤范围是字符串长度少1
· 从右到左索引默认-1开始的,最⼤范围是字符串开头
· [头下标:尾下标] 获取的⼦字符串包含头下标的字符,但不包含尾下标的字符。
⽐如:
>>> s = 'abcdef'
>>> s[1:5]
'bcde'
Python 列表截取可以接收第三个参数,参数作⽤是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔⼀个位置)来截取字符串:
四、Python 转义字符
有些特殊字符没有办法⽤普通字符表⽰,需要进⾏转义。python⽤反斜杠()转义字符。如下表:
转义字符转义字符
\(在⾏尾时)续⾏符
\\反斜杠符号
\’单引号
\"双引号
\n换⾏
\v纵向制表符
\t横向制表符
\r回车
五、Python 三引号
Python 中三引号可以将复杂的字符串进⾏赋值。
Python 三引号允许⼀个字符串跨多⾏,字符串中可以包含换⾏符、制表符以及其他特殊字符。
三引号的语法是⼀对连续的单引号或者双引号(通常都是成对的⽤)。
>>> hi = '''hi
there'''
>>> hi # repr()
'hi\nthere'
>>> print(hi) # str()
hi
there
三引号让程序员从引号和特殊字符串的泥潭⾥⾯解脱出来,⾃始⾄终保持⼀⼩块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。⼀个典型的⽤例是,当你需要⼀块HTML或者SQL时,这时当⽤三引号标记,使⽤传统的转义字符体系将⼗分费神。
errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
CREATE TABLE users (
login VARCHAR(8),
uid INTEGER,
prid INTEGER)
''')
六、Python字符串内置⽅法
1、判断类型-9
序
号
⽅法描述
1isalnum()⽅法检测字符串是否由字母和数字组成。如果字符串⾄少有⼀个字符并且所有字符都是字母或数字则返 回 True,否则返回 False.
2isalpha()⽅法检测字符串是否只由字母或⽂字组成。如果字符串⾄少有⼀个字符并且所有字符都是字母则返回 True, 否则返回 False.
3isdigit()⽅法检测字符串是否只由数字组成。如果字符串只包含数字则返回 True 否则返回 False
4isnumeric()⽅法检测字符串是否只由数字组成,数字可以是: Unicode 数字,全⾓数字(双字节),罗马数字,汉字数字。指数类似 ² 与分数类似 ½ 也属于数字。如果字符串中只包含数字字符,则返回 True,否则返回 False
5isdecimal()检查字符串是否只包含⼗进制字符,如果是返回 true,否则返回 false。
6isspace()⽅法检测字符串是否只由空⽩字符组成。如果字符串中只包含空⽩,则返回 True,否则返回 False.
7islower()⽅法检测字符串是否由⼩写字母组成。如果字符串中包含⾄少⼀个区分⼤⼩写的字符,并且所有这些(区分⼤⼩写的)字符都是⼩写,则返
回 True,否则返回 False
8isupper()⽅法检测字符串中所有的字母是否都为⼤写。如果字符串中包含⾄少⼀个区分⼤⼩写的字符,并且所有这些(区分⼤⼩写的)字符都是⼤
写,则返回 True,否则返回 False
9istitle()⽅法检测字符串中所有的单词拼写⾸字母是否为⼤写,且其他字母为⼩写。如果字符串是标题化的(见 title())则返回 True,否则返回
False
2、查和替换-7
序
号
⽅法描述
1endswith(suffix[, start[,
end]])
⽅法⽤于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False。可选参数 “start”
与 “end” 为检索字符串的开始与结束位置。
2
startswith(substr,检查字符串是否是以指定⼦字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则
beg=0,end=len(string))
在指定范围内检查。
3
find(str, beg=0,end=len(string))
检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的
索引值,否则返回-1
4rfind(str,
beg=0,end=len(string))类似于 find()函数,不过是从右边开始查.
5index(str, beg=0,end=len(string))跟find()⽅法⼀样,只不过如果str不在字符串中会报⼀个异常.
6rindex( str, beg=0,end=len(string))类似于 index(),不过是从右边开始.
7replace(old, new [, max])
把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。
序号⽅法描述3、⼤⼩写转换-5
序号⽅法描述
1capitalize()将字符串的第⼀个字符转换为⼤写
2title()返回"标题化"的字符串,就是说所有单词都是以⼤写开始,其余字母均为⼩写(见 istitle())
3upper()转换字符串中的⼩写字母为⼤写4lower()转换字符串中所有⼤写字符为⼩写.5
swapcase()
将字符串中⼤写转换为⼩写,⼩写转换为⼤写
4、⽂本对齐-3
序号⽅法
描述
1rjust(width,[, fillchar])返回⼀个原字符串右对齐,并使⽤fillchar(默认空格)填充⾄长度 width 的新字符串2ljust(width[, fillchar])返回⼀个原字符串左对齐,并使⽤ fillchar 填充⾄长度 width 的新字符串,fillchar 默认为空格。
3
center(width, fillchar)
返回⼀个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。格式化命令format参数
5、去除空⽩字符-3
序号
⽅法
描述
1strip([chars])
⽅法⽤于移除字符串头尾指定的字符(默认为空格)或字符序列。注意:该⽅法只能删除开头或是结尾的字符,不能删除中间部分
的字符。
2lstrip()截掉字符串左边的空格或指定字符。3
rstrip()
删除字符串字符串末尾的空格.
6、拆分和连接-3
序号
⽅法
描述
1
split(str="",
unt(str))
unt(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个⼦字符串
2splitlines([keepends])
按照⾏(’\r’, ‘\r\n’, \n’)分隔,返回⼀个包含各⾏作为元素的列表,如果参数 keepends 为 False,不包含换
⾏符,如果为 True,则保留换⾏符。
3join(seq)
以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表⽰)合并为⼀个新的字符串
7、其它-10
序
号
⽅法描述
1count(str, beg= 0,end=len(string))返回 str 在 string ⾥⾯出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
2bytes.decode(encoding=“utf-8”,
errors=“strict”)
Python3 中没有 decode ⽅法,但我们可以使⽤ bytes 对象的 decode() ⽅法来解码给定的 bytes 对
象,这个 bytes 对象可以由 de() 来编码返回。
3encode(encoding=‘UTF-
8’,errors=‘strict’)
以 encoding 指定的编码格式编码字符串,如果出错默认报⼀个ValueError 的异常,除⾮ errors 指定的
是’ignore’或者’replace’
4expandtabs(tabsize=8)把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。5len(string)返回字符串长度
6zfill (width)返回长度为 width 的字符串,原字符串右对齐,前⾯填充0
7maketrans()创建字符映射的转换表,对于接受两个参数的最简单的调⽤⽅式,第⼀个参数是字符串,表⽰需要转换的字
符,第⼆个参数也是字符串表⽰转换的⽬标。
8max(str)返回字符串 str 中最⼤的字母。
9min(str)返回字符串 str 中最⼩的字母。
10translate(table, deletechars="")根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中七、str.format()格式化⽅法
前⾯说过%百分符格式化⽅法。Python官⽅逐步在推⼴str.format()⽅法的格式化。
fromat()⽅法是字符串的内置⽅法,其基本语法如下:
参数列表:[[fill]align][sign][#][0][width][,][.precision][type]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论