字符串是 Python 中最常用的数据类型。我们可以使用引号(‘或”)来创建字符串。
Python不支持单个字符的存在,单字符在 Python 中也是作为一个字符串使用。

一、访问字符串中的值

我们可以使用索引(从0开始)来访问字符串中的具体字符。使用中括号来获取。

python字符串数组定义 python字符数组 操作_python字符串数组定义

二、切片操作

      切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长]
步长:表示下标变化的规律。

注意:选取的区间属于左闭右开型,即从”起始”位开始,到”结束”位的前一位结束(不包含结束位本身)。结束位允许使用负数表示倒数的字符

name = 'abcdef'
print(name[0:3]) # 取下标 0~2 的字符
print(name[0:5]) # 取下标为 0~4 的字符
print(name[3:5]) # 取下标为 3、4 的字符
print(name[2:]) # 取下标为2开始到最后的字符
print(name[1:-1]) # 取下标为1开始到最后第2个之间的字符

python字符串数组定义 python字符数组 操作_python教程_02

三、字符串运算符

初始化两个字符串str1 = “good”和str2 = “python”。

操作符

功能

实例

+

连接字符串

str1+sre2 输出结果:”goodpython”

*

重复输出字符串

str1 * 2 输出结果:”goodgood”

[]

根据索引获取字符串中的字符内容

str1[2] 的输出结果:”o”

in

判断某一字符是否存在于字符串中,存在返回True,否则返回False

‘g’ in str1 的输出结果:True

not in

判断某一字符是否不存在于字符串中,不存在返回True,否则返回False

‘h’ not in str1 输出结果:True

r或R

原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

print(r’\\t’)输出’\\t’

四、字符串三引号

三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

HTML = '''
<HTML>
    <HEAD>
        <TITLE>Friends CGI Demo</TITLE>
    </HEAD>
    <BODY>
    <H3>ERROR</H3>
    <B>%s</B><P>
    <FORM><INPUT TYPE=button VALUE=BackONCLICK="window.history.back()"></FORM>
    </BODY>
</HTML>
'''

python字符串数组定义 python字符数组 操作_bc_03

五、字符串内建函数

内建函数名

描述

实例

capitalize()

将字符串的第一个字母变成大写,其他字母变小写。该方法返回一个首字母大写的字符串。注意:如果首字符为非字母那么将不会变为大写,但是其余字符变为小写。

str = “good PYTHON”

str.capitalise()输出结果:”Good python”

str = “123 GOod”

str.capitalize()输出结果:”123 good”

center(width[, fillchar])

返回一个指定的宽度 width 居中的字符串,如果 width 小于字符串宽度直接返回字符串,否则使用 fillchar (默认使用空格)去填充。

参数:

         width – 字符串的总宽度

         fillchar – 指定填充某个字符,并且只能是单个字符

str = “欢迎登录”

str.center(10,’*’)

输出结果:’***欢迎登录***’

count(str, beg= 0,end=len(string))

用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

参数:

         sub – 搜索的子串

         beg – 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。

         end – 字符串中结束搜索的位置。默认为字符串的最后一个位置。

str = “hello python”

str.count(‘o’)

输出结果:2

str.count(‘o’,1,5)

输出结果:1

endswith(suffix, beg=0, end=len(string))

用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数”beg”与”end”为检索字符串的开始与结束位置。

参数:

         suffix – 该参数可以是一个字符串或者是一个元素。

         beg – 检索的起始位置。

         end – 该参数可以是一个字符串或者是一个元素。检索字符串的结束位置。

str = “test.py”

str.endswith(“.py”)

输出结果:True

startswith(str, beg=0,end=len(string))

检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

expandtabs(tabsize=8)

把字符串中的 tab 符号(‘\t’)转为空格,tab 符号(‘\t’)默认的空格数是 8。该方法返回字符串中的 tab 符号(‘\t’)转为空格后生成的新字符串。

参数:

         tabsize – 指定转换字符串中的 tab 符号(‘\t’)转为空格的字符数。

str = “This is\tdemo”

print(str.expandtabs(1))

输出结果:”This is demo”

find(str, beg=0 end=len(string))

检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果在指定范围内如果包含子串,返回的是子串在字符串中的起始位置。如果不包含子串,返回-1。

参数:

         str – 指定检索的字符串。

         beg – 开始索引,默认为0。

         end – 结束索引,默认为字符串的长度。

str = “good python”

sub = “python”

str.find(sub)

输出结果:5

若sub = “c++”

输出结果:-1

rfind(str, beg=0,end=len(string))

类似于 find()函数,不过是从右边开始查找.

index(str, beg=0, end=len(string))

检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。

参数:

         与find()函数相同

rindex( str, beg=0, end=len(string))

类似于 index()函数,不过是从右边开始查找.

isalnum()

检测字符串是否由字母和数字组成。如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False

str = “123abc”

str.isalnum()

输出结果:True

str = “..123abc”

str.isalnum()

输出结果:False

isalpha()

检测字符串是否只由字母组成

str = “123abc”

str.isalpha()

输出结果:False

str = “abc”

str.isalpha()

输出结果:True

isdigit()

检测字符串是否只由数字组成。如果字符串只包含数字则返回 True 否则返回 False。

str = “123”

str.isdigit()

输出结果:True

islower()

检测字符串是否由小写字母组成。如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

str = “GoodPython”

str.islower()

输出结果:False

str = “123abc”

str.islower()

输出结果:True

str = “123456”

输出结果:False

isspace()

检测字符串是否只由空白字符组成。如果字符串中只包含空格,则返回 True,否则返回 False。

str = ” “

str.isspace()

输出结果:True

istitle()

检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

str = “Head First Java”

str.istitle()

输出结果:True

isupper()

检测字符串中所有的字母是否都为大写。

str = “123ABC”

str.isupper()

输出结果:True

join(seq)

用于将序列中的元素以指定的字符连接生成一个新的字符串。

参数:

         seq – 要连接的序列,并且里面的元素必须为字符串

str = “-“

seq = (“188”,”0000”,”2134”)

print(str.join(seq))

输出结果:188-0000-2134

seq = “hello” #字符串也是序列

str.join(seq)

输出结果:h-e-l-l-o

ljust(width[, fillchar])

返回一个原字符串左对齐,并使用fillchar(默认使用空格)填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

参数:

         width – 指定字符串长度。

         fillchar – 填充字符,默认为空格。

str = “hello”

str.ljust(10,’*’)

输出结果:hello*****

rjust(width,[, fillchar])

返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串

lower()

转换字符串中所有大写字符为小写。返回转换后的字符串。

str = “THIS IS DEMO.”

str.lower()

输出结果:this is demo.

upper()

转换字符串中的小写字母为大写

swapcase()

将字符串中大写转换为小写,小写转换为大写

str = “hello PYTHON”

str.swapcase()

输出结果:HELLO python

lstrip([chars])

截掉字符串左边的空格或指定字符。

参数:

         chars –指定截取的字符。

str = ” lstrip()”

str.lstrip()

输出结果:lstrip

str = “*****lstrip()”

str.lstrip(‘*’)

输出结果:lstrip

rstrip()

删除字符串字符串右侧的空格.

strip([chars])

在字符串上执行 lstrip()和 rstrip()

max(str)

返回字符串中最大的字母。

str = “abc”

max(str)

输出结果:c

replace(old, new [, max])

把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

参数:

         old – 将被替换的子字符串。

         new – 新字符串,用于替换old子字符串。

         max – 可选字符串, 替换不超过 max 次。

str = “hello python python python”

str.replace(“python”,”JAVA”)

输出结果:hello JAVA JAVA JAVA

str.replace(“python”,”JAVA”,1)

hello JAVA python python

split(str=”“, num=string.count(str))

通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串。返回分割后的字符串列表。

参数:

         str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。

         num – 分割次数。

str = “this is a demo.”

str.split(” “)

输出结果:[‘this’, ‘is’, ‘a’, ‘demo’]

str.split(” “,2)

输出结果:[‘this’, ‘is’, ‘a demo’]

splitlines([keepends])

按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

参数:

         keepends – 在输出结果里是否去掉换行符(‘\r’, ‘\r\n’, \n’),默认为 False,不包含换行符,如果为 True,则保留换行符。

‘ab c\n\nde fg\rkl\r\n’.splitlines()

输出结果:不保留换行符[‘ab c’, ”, ‘de fg’, ‘kl’]

’ab c\n\nde fg\rkl\r\n’.splitlines(True)

输出结果:保留换行符[‘ab c\n’, ‘\n’, ‘de fg\r’, ‘kl\r\n’]

title()

返回”标题化”的字符串,就是说所有单词都是以大写开始,其余字母均为小写

str = “thIS a tiTLe.”

str.title()

输出结果:This A Title.

zfill (width)

返回指定长度的字符串,原字符串右对齐,前面填充0。

参数:

         width – 指定字符串的长度。原字符串右对齐,前面填充0。

str = “hello”

str.zfill(2)

输出结果:hello

str.zfill(10)

输出结果:00000hello

isdecimal()

检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。如果字符串是否只包含十进制字符返回True,否则返回False。

注意:定义一个十进制字符串,只需要在字符串前添加 ‘u’ 前缀即可。

str = “123abc”

str.isdecimal()

输出结果:False

str = “123456”

str.isdecimal()

输出结果:True

partition(str)

以str分割成三部分,str前,str和str后

参数:

         str – 指定分隔的字符串

str = “this is a demo.”

str.partition(“is”)

输出结果:(‘th’, ‘is’, ’ is a demo.’)

rpartition(str)

与partition(str)类似,只是从右边开始分割

str = “this is a demo.”

str.partition(“is”)

输出结果:(‘this ‘, ‘is’, ’ a demo.’)