字符串方法

1.capitalize方法:字符串首字母大写

举例:

test="alex"
v=test.capitalize()
print(v)
返回结果:
Alex

2.casefold和lower方法,都是把字符串变成小写,区别是lower应对一般情况,而casefold使用范围更广

举例:

test="aLex"
v1=test.casefold()
print(v1)
v2=test.lower()
print(v2)
返回结果:
alex
alex

3.center方法:设定一个总长度,将字符串放置在中间,如果设定的长度多于字符串的长度,则使用指定的内容填充,默认是空格,并且只允许填充1个字符

格式:
count(<长度>[,<填充字符>])
举例:

test="aLex"
v=test.center(20)
返回结果:
aLex

举例:

test="aLex"
v=test.center(20,"*")
print(v)
返回结果:
********aLex********

4.count方法:在字符串中查找指定字符出现的次数,如果不指定起始及结束位置,则默认从头开始

格式:
count(<指定字符串>[,<起始位置>[,<结束位置>]])
注意:起始位置从1开始计算,而非0
举例:

test="aLexalex"
v=test.count('e')
print(v)
返回结果:
2
test="aLexalex"
v=test.count('e',5) #从第5位开始计算
print(v)
返回结果:
1
test="aLexalex"
v=test.count('e',2) #从第2位开始计算
print(v)
返回结果:
2 test="aLexalex"
v=test.count('e',2,5) #从第2位开始到第5位结束
print(v)
返回结果:
1 test="aLexalex"
v=test.count('e',6,7) #从6到7之间查找,起始位置是从1开始计算
print(v)
返回结果:
1

5.endswith方法:指定子串,判断字符串结尾是否是给定的字符串,返回布尔值
格式:
endswith(<指定子串>[,[开始位置],[结束位置]])

举例:

test="alex"
v=test.endswith('e')
print(v)
返回结果:
False test="alex"
v=test.endswith('x')
print(v)
返回结果:
True test="alex"
v=test.endswith('ex')
print(v)
返回结果:
True test="alexstkoex"
v=test.endswith('ex',2,6)
print(v)
返回结果:
False test="alexstkoex"
v=test.endswith('ex',1,4) #起始位置是从1开始计算
print(v)
返回结果:
True

6.find方法:寻找指定子串在字符串中的位置,返回值是位置

五星方法:★★★★★
格式:
find(<指定子串>[,起始位置][,结束位置])
注意:起始位置从0开始计算,而非1
举例:

test="alexstlkoex"
v=test.find('l')
print(v)
返回结果:
1 test="alexstlkoex"
v=test.find('e')
print(v)
返回结果:
2 test="alexstlkoex"
v=test.find('e',2,4)
print(v)
返回结果:
2 test="alexstlkoex"
v=test.find('l',1,6) #指定末尾是6,不计算,也就是说指定位置是从1开始至6,并不包含6
print(v)
返回结果:
1

7.format方法:格式化字符串,将字符串中的占位符替换为指定变量的值,变量以大括号括起来
格式:
format(<变量表达式>[,<变量表达式>]...)
举例:

test='i am {name}'
print(test)
v=test.format(name='alex')
print(v)
返回结果:
i am {name}
i am alex

举例:

test='i am {name}, age is {age}'
print(test)
v=test.format(name='alex',age='')
print(v)
返回结果:
i am {name}, age is {age}
i am alex, age is 19

举例:也可以根据出现的顺序替换

test='i am {0}, age is {1}'
print(test)
v=test.format('alex','')
print(v)
返回结果:
i am {0}, age is {1}
i am alex, age is 19

8.format_map方法:与format类似,只不过以key-value的样式传入变量的值
格式:
format_map({"key":'value'[,"key":'value',...]})
举例:

test='i am {name}, age {a}'
v1=test.format(name='df',a=10)
print(v1)
v2=test.format_map({"name":'alex',"a":19})
print(v2)
返回结果是:
i am df, age 10
i am alex, age 19

9.index方法:与find类似,也是查找位置,区别在于index如果没找到会报错,find方法如果没找到返回-1

10.isalnum方法:用来判断字符串中是否只包含数字和字母,返回布尔值
格式:
isalnum()
举例:

test="usb2.0+usb3.0"
v=test.isalnum()
print(v)
返回值是:
False test="usb2.0usb3.0"
v=test.isalnum()
print(v)
返回值是:
False test="usb2.0usb3"
v=test.isalnum()
print(v)
返回值是:
False test="usb20usb30"
v=test.isalnum()
print(v)
返回值是:
True test="usbusb" #只包含字符,返回True
v=test.isalnum()
print(v)
返回值是:
True test="" #只包含数字,返回True
v=test.isalnum()
print(v)
返回值是:
True

11.expandtabs方法:常用于断句。
具体作用:指定制表符宽度,在字符串中按照宽度一次读入,如果读入之中没有制表符,则再次读入,如果读入中有制表符(\t),则把制表符用空格补充,补充的数量根据指定宽度减去制表符之前读入的字符串长度

格式:
expandtabs(<num>)
举例

str1="uyiujoiuerwje\t0021jk\tjljsdf"
v=str1.expandtabs(6)
返回结果:
uyiujoiuerwje 0021jk jljsdf

执行过程如下:
设定读入宽度为6
开始读入6个字符:uyiujo这期间没有制表符,不操作

继续读入6个字符:iuerwj这期间没有制表符,不操作

继续读入6个字符:e\t在读入期间碰到了制表符,则停止读入,由于制表符之前有个字符e占用一个位置,则其余5个位置用空格代替,最后就是e+5个空格

继续读入6个字符:0021jk这期间没有碰到制表符,不操作

继续读入6个字符:碰到了制表符,那么就用6个空格代替制表符;

继续读入6个字符:jljsdf这期间没有碰到制表符,不操作
最后输出结果:uyiujoiuerwje 0021jk jljsdf

举例:

str1="12345678\t9"
v=str1.expandtabs(6)
print(v,len(v))
返回结果:
12345678 9 13 str1="1234567\t89"
v=str1.expandtabs(6)
print(v,len(v))
返回结果:
1234567 89 14 str1="username\temail\tpassword\nCCTV\tying@q.com\t123\nCCTV\tying@q.com\t123\nCCTV\tying@q.com\t123\n"
v=str1.expandtabs(20)
print(v)
返回结果:
username email password
CCTV ying@q.com 123
CCTV ying@q.com 123
CCTV ying@q.com 123

执行过程如下:
设置了读入宽度为20,则:
开始读入20个字符,username读完之后遇到制表符,则把剩余空间使用空格补全;

继续读入20个字符,email读完之后遇到制表符,则把剩余空间使用空格补全;

继续读入20个字符,password读完后遇到换行符,则开始换行,结束读入

11.isalpha方法:判断字符串中是否全部都是字母,返回值是布尔值
举例:

str1="asdf"
v=str1.isalpha()
print(v)
返回结果:
True str1="as2df"
v=str1.isalpha()
print(v)
返回结果:
False str1="as汉字df"
v=str1.isalpha() #汉字也算作字母
print(v)
返回结果:
True

12.isdecimal和isdigit方法:都可以用来判断一个字符串是否全部是数字
区别:isdigit范围更广泛,isdecimal只能判断十进制数字而且是整型,否则一律为false
举例:

str1=""
v1=str1.isdecimal()
v2=str1.isdigit()
print(v1,v2)
返回结果:
True True str1="二"
v1=str1.isdecimal()
v2=str1.isdigit()
print(v1,v2)
返回结果:
False False str1="a123"
v1=str1.isdecimal()
v2=str1.isdigit()
print(v1,v2)
返回结果:
False False #只能判断整数,小数不行
str1="3.1415926"
v1=str1.isdecimal()
v2=str1.isdigit()
print(v1,v2)
返回结果:
False False #负数也不行
str1="-31415926"
v1=str1.isdecimal()
v2=str1.isdigit()
print(v1,v2)
返回结果:
False False #特殊类型的数值表示
str1="②"
v1=str1.isdecimal()
v2=str1.isdigit()
print(v1,v2)
返回结果:
False True

13.isidentifier方法:判断是否是标识符,返回布尔值
标识符的认定标准:字母、数字、下划线,并且不能以数字开头
只要符合上面的标准就是标识符

举例:

str1="def"
v=str1.isidentifier()
print(v)
返回结果:
True str1="1def"
v=str1.isidentifier()
print(v)
返回结果:
False str1="_def"
v=str1.isidentifier()
print(v)
返回结果:
True

14.islower方法:判断字符串是否都是小写;
isnumeric方法:判断字符串是否是数值,这个判断范围比isdigital更广泛
举例:

str1="二"
v1=str1.isdecimal()
v2=str1.isdigit()
v3=str1.isnumeric()
print(v1,v2,v3)
返回结果:
False False True

15.isprintable方法:判断字符串内容是否包含不可显示的字符,返回布尔值
例如:\t制表符、\n换行符
举例:字符串中包含不可显示的字符,返回false

str1="ouisad\tdfj"
v=str1.isprintable()
print(v)
返回结果:
False

16.isspace方法:判断字符串是否只包含空格,只包含空格返回True,否则返回False
举例:

str1=" "
v=str1.isspace()
print(v)
返回结果:
True str1=" "
v=str1.isspace()
print(v)
返回结果:
True

17.istitle方法及title方法:
istitle方法:判断字符串是否符合文章标题标准,符合返回True,否则返回False
符合文章标题的要求:字符串中每个单词开头字母均为大写
举例:

str1="this is a string"
v=str1.istitle()
print(v)
返回结果:
False str1="This Is A String"
v=str1.istitle()
print(v)
返回结果:
True title方法:把字符串转换为标题样式
举例:
str1="this is a string"
v=str1.title()
print(v)
返回结果:
This Is A String

18.join方法:对字符串中的每个字符按照指定分隔符进行拼接

五星重点:★★★★★

举例:

str1="七月的风八月的雨"
print(str1)
t=" "
v=t.join(str1)
print(v)
返回结果:
七月的风八月的雨
七 月 的 风 八 月 的 雨 举例:
str1="七月的风八月的雨"
print(str1)
v="_".join(str1)
print(v)
返回结果:
七月的风八月的雨
七_月_的_风_八_月_的_雨

19.ljust和rjust方法:与center类似,区别在于center把字符串放中间,ljust把字符串放左侧,rjust把字符串放右侧
举例:

str1="alex"
v1=str1.ljust(20,"*")
v2=str1.rjust(20,"*")
print(v1)
print(v2)
返回结果:
alex****************
****************alex

20.lower方法和upper方法:将字符串中字符全部转换成小写和大写

五星重点:★★★★★
举例:

str1="Alex"
v1=str1.lower()
v2=str1.upper()
print(v1,v2)
返回结果:
alex ALEX

21.lstrip方法rstrip方法和strip方法:分别去除左侧、右侧、两侧全部空格及换行、制表符等不可见字符

五星重点:★★★★★
注意:默认不加参数的时候是去除空格,如果指定的参数,则可以去除指定参数的内容

举例:移除空格

str1=" alex "
v1=str1.lstrip() #去除左侧空格
v2=str1.rstrip() #去除右侧空格
v3=str1.strip() ##去除所有空格
print(v1)
print(v2)
print(v3)
返回结果:
alex
alex
alex 举例:移除换行、制表符等不可见字符
str1="\talex\t"
v1=str1.lstrip()
v2=str1.rstrip()
v3=str1.strip()
print(v1)
print(v2)
print(v3)
返回结果:
alex
alex
alex 举例:移除指定参数内容
str1="alex"
v2=str1.rstrip("x")
print(v2)
返回结果:
ale str1="alex"
v2=str1.rstrip("e")
print(v2)
返回结果:
alex str1="alex"
v2=str1.rstrip("ex")
print(v2)
返回结果:
al str1="alex"
v2=str1.rstrip("xex")
print(v2)
返回结果:
al str1="alex"
v2=str1.rstrip("lex")
print(v2)
返回结果:
a str1="alex"
v2=str1.rstrip("elx")
print(v2)
返回结果:
a

22.maketrans方法和translate方法
这两种方法需要配合使用,先使用maketrans方法建立对应关系,然后用translate
注意:建立对应关系时的字符串长度需要一致;
例如:有2个字符串"aeiou"和"12345"
现在想把这2个字符串的字符内容一一对应,即:a->1/e->2/i->3/o->4/u->5
然后,想把一个字符串"sdaiodlffuioaouiaee"中的字符转换成对应关系的内容
举例:

str1="sdaiodlffuioaouiaee"
m=str.maketrans("aeiou","")
str2=str1.translate(m)
print(str2)
返回结果:
sd134dlff5341453122

23.partition方法、rpartition方法、split方法、rsplit方法、splitlines方法
partition方法和rpartition方法一样都是把字符串分割成3份,分割结果中包含分割符
split方法、rsplit方法也是分割字符串,但分割结果中并不包含分割符
splitlines方法只针对字符串中包含有换行符的进行分割

split方法五星重点方法★★★★★

举例:

str1="testasdsddfg"
v=str1.partition("s")
print(v)
返回结果:
('te', 's', 'tasdsddfg') str1="testasdsddfg"
v=str1.rpartition("s")
print(v)
返回结果:
('testasd', 's', 'ddfg') str1="testasdsddfg"
v=str1.split("s")
print(v)
返回结果:
['te', 'ta', 'd', 'ddfg'] str1="testasdsddfg"
v=str1.split("s",1)
print(v)
返回结果:
['te', 'tasdsddfg'] str1="testasdsddfg"
v=str1.split("s",2)
print(v)
返回结果:
['te', 'ta', 'dsddfg'] str1="asdfsssd\nuokkk\nlliipop"
v=str1.splitlines()
print(v)
返回结果:
['asdfsssd', 'uokkk', 'lliipop'] str1="asdfsssd\nuokkk\nlliipop" #使用True或False用来控制是否显示换行符
v=str1.splitlines(True)
print(v)
返回结果:
['asdfsssd\n', 'uokkk\n', 'lliipop'] str1="asdfsssd\nuokkk\nlliipop"
v=str1.splitlines(False)
print(v)
返回结果:
['asdfsssd', 'uokkk', 'lliipop']

24.startswith方法
用来判断字符串是否以指定字符开头

举例:

str1="backend 111"
v=str1.startswith("b")
print(v)
返回结果:
True str1="backend 111"
v=str1.startswith("a")
print(v)
返回结果:
False

25.swapcase方法
大小写转换,把字符串中小写字符改成大写,把大写字符改成小写

举例:

str1="aLex"
v=str1.swapcase()
print(v)
返回结果:
AlEX

26.replace方法:字符串内容替换

五星重点:★★★★★
格式:
replace(<被替换内容>,<新内容>[,替换次数])
举例:

str1="alexalexalex"
v=str1.replace("ex","aaa")
print(v)
返回结果:
alaaaalaaaalaaa str1="alexalexalex"
v=str1.replace("ex","aaa",1) #只替换1次
print(v)
返回结果:
alaaaalexalex str1="alexalexalex"
v=str1.replace("ex","aaa",2) #只替换2次
print(v)
返回结果:
alaaaalaaaalex

下面是字符串的黑科技方法

五星重点★★★★★

1.字符串的切片:使用[位置1[:位置2]]表示,位置参数是数字,称为下标,从0开始
作用:
如果只给定一个位置参数,则提取字符串中的某一个子字符
如果给定多个位置参数,则提取字符串中从位置1的字符开始(包含位置1的字符),直到位置2(不包含位置2的字符)
举例:

str1="alex"
v=str1[0]
print(v)
返回结果:
a str1="alex"
v=str1[2]
print(v)
返回结果:
e str1="alex"
v=str1[0:1] #从0开始,不包含1位置的字符
print(v)
返回结果:
a str1="alex"
v=str1[0:2] #从0开始,不包含2位置的字符
print(v)
返回结果:
al str1="alex"
v=str1[0:-1] #从0开始,直到最后,但不包含最后位置的字符
print(v)
返回结果:
ale

str1="alex"
v=str1[-2] #倒数第2个
print(v)
返回结果:
e


str1="alex"
v=str1[2:3] #从第2个开始到第3个,但不包含第3个,所以返回结果是e
print(v)
返回结果:
e


str1="alex"
v=str1[2:4] #从第2个开始,直到最后,取得最后2个字符
print(v)
返回结果:
ex


str1="alex"
k=len(str1)
v=str1[k-2:k] #取得字符串中最后2个字符,通用方法
print(v)
返回结果:
ex

 

2.字符串的len方法:返回字符串中由多少个字符组成
注意:在python3版本中如果字符串中的中文,则一个中文按1个计算;
在python2.7版本中,如果按照utf8编码的话,一个汉字由3个字节组成,则3个汉字,此方法返回结果是9

举例:

str1="我爱你"
v=len(str1)
print(v)
返回结果:
3

3.for循环方法:循环遍历字符串中的某一个字符
格式:
for 变量名 in 字符串:
代码块

举例:

str1="我爱你"
for love in str1:
  print(love)

4.range方法:创建连续的数字,可以通过设置步长来指定不连续,但并不立即生成,当使用for循环的时候才生成

格式:
range(<数值1>[,数值2][,步长])

例如:range(100)表示创建一个从0..99的连续数值

举例:

v=range(100)
print(v)
返回结果: #在python3版本中,是如下的返回结果,如果在python2.7中,则会立即生成从0..99的连续数字
range(0,100) 如果要生成这个列表的话,需要使用for
举例:
v=range(100)
for item in v:
print(item) 通过设置步长,来生成不连续的数字
举例:
v=range(0,100,5)
for item in v:
print(item)
返回结果:
0 5 10 15...

如果要生成的是倒序:
range(100,0,-1)

for i in range(100,0,-1):
  print(i) #打印输出

 

python之字符串及其方法---整理集的更多相关文章

  1. python之集合及其方法---整理集

    集合的定义: 由不同元素组成.一组无序排列的可hash值.集合中元素必须是不可变类型 集合的定义方式: 由大括号组成: 每个元素用逗号分隔: 元素书写不是key-value形式: 集合是由不同元素组成 ...

  2. python之元组及其方法---整理集

    元组: 区别:与列表类似,是对列表的二次加工:用小括号包括起来:元素不可修改:不可增加.删除 技巧:创建元组的时候,一般在最后一个元素后面加一个逗号:为了与方法区分:并且这个逗号不算元素例如: tu= ...

  3. python之列表及其方法---整理集

    列表类,类名是list 通过list类创建对象,使用中括号 列表特性: 使用中括号括起来 中间用逗号分隔每个元素 元素可以是数字.字符串.布尔值.列表 列表中可以嵌套列表 列表中每个元素的下标从0开始 ...

  4. python之字典及其方法---整理集

    字典 特点: 使用逗号分隔的key:value形式: 使用大括号括起来: key-value的键值对中,value部分可以是任意类型: 列表.字典不能做为字典的key: 字典是无序的,哪个key-va ...

  5. python字符串(string)方法整理

    python中字符串对象提供了很多方法来操作字符串,功能相当丰富. print(dir(str)) [..........'capitalize', 'casefold', 'center', 'co ...

  6. python反转字符串(简单方法)及简单的文件操作示例

    Python反转字符串的最简单方法是用切片: >>> a=' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...

  7. 学习python的字符串的方法

    今天看了下学习视频,发现str也有许多方法,才发现昨天了解的关于字符串知识甚少,所以今天查看了python的源码,学习一些新的方法 以下是我把边对照着源码边翻译,边尝试实现方法 1.第一个字符有大写字 ...

  8. Python中字符串的方法及注释

    先整理到这里:用的时候便于查询.相当于自己的资料库吧. capitalize()   把字符串的第一个字符改为大写 casefold()   把整个字符串的所有字符改为小写 center(width) ...

  9. 学习python 检测字符串的方法

    检测字符串长度的方法:len() 检测字符串是否含有字母的方法:str.isalpha() 检测字符串是否含有数字的方法:str.isnumeric() 检测字符串是否有大写字母:str.upper( ...

随机推荐

  1. 报错:Sqoop2 Exception: java.lang.NoSuchMethodError Message: org.apache.hadoop.security.authentication.client.Authenticator

    报错过程: 进入sqoop2之后, 输入命令:show connector,报错 报错现象: Exception has occurred during processing command Exce ...

  2. ASP.NET Core 1.1版本之Hello word

    1.下载ASP.NET Core 1.1版本,并且安装. 2.新建一个工作文件夹,本文以WebApiFrame名称为例建立一个新的文件夹: mk WebApiFrame 3.启动命令行,在命令行中进入 ...

  3. Git操作相关记录

    1. 本地更新fork来的项目,与原项目同步更新 git remote add upstream <origin_repo_addr> git remote -v git fetch up ...

  4. wx.navigateBack(OBJECT)怎么携带参数呢?

    wx.navigateBack(OBJECT) 关闭当前页面,返回上一页面或多级页面.可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层. OBJECT 参数说明: 参数 ...

  5. Postman runner参数化

    按照下面图片的顺序操作吧~ lets go 1.把要做参数化的字段的value用花括号标识起来,如:{{phone}} 2.准备一个csv的文件,把每次请求接口的参数按下图填写好,第一行写字段名称(p ...

  6. 配置samba的流程

    1.关闭防火墙和selinuxservice iptables stopsetenforce 02.配置本地yummount /dev/cdrom /mediacd /etc/yum.repos.dc ...

  7. C 语言实现基于 Linux 的端口扫描程序

    Socket 常用函数: ⑴int socket(int protofamily, int type, int protocol); protofamily:即协议域,又称为协议族(family).常 ...

  8. when to use reinterpret_cast

    写的太好了.. When you convert for example int(12) to unsigned float (12.0f) your processor needs to invok ...

  9. An error occurred while starting the application.

    一..net core 发布后的站点启动报错如下 An error occurred while starting the application. .NET Core 4.6.26328.01 X6 ...

  10. k8s外部访问内部的service

    如果不指定Service的spec.type的值,创建的Service的类型默认为ClusterIP类型.这种类型的Service只会得到虚拟的IP和端口,只能在Kubernetes集群内部被访问. ...