(三)Python:字符串常用方法

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

一、访问字符串中的值

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

二、切片操作

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

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

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个之间的字符

这里写图片描述

三、字符串运算符

初始化两个字符串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>
'''

这里写图片描述

五、字符串内建函数

内建函数名 描述 实例
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.’)

猜你喜欢

转载自blog.csdn.net/qq_25343557/article/details/80933792