字符串方法

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. java 通信

    UDP package com.le; import org.junit.Test; import java.io.IOException; import java.net.DatagramPacke ...

  2. configEnvironment()源码探究

    该方法目的是对上面刚创建的环境对象进行相关配置,包含两步:配置属性源和配置活跃profiles. 其中配置属性源如下: 1.首先获取属性源 2.然后将默认属性源添加到属性源中 3.然后将命令行属性源添 ...

  3. ES - Index Templates 全局index模板

    1.Index Templates 之前我们聊过Dynamic template,它作用范围是特定的Index,如果我们想针对全局Index进行设置该如何操作呢? Index Templates 可以 ...

  4. guava Lists.transform使用

    作用:将一个List中的实体类转化为另一个List中的实体类. 稍微方便一点.例如:将List<Student>转化为List<StudentVo> Student: pack ...

  5. Unity Shader Graph(三)Phase In and Out

    软件环境 Unity 2018.1.6f1 Lightweight Render Pipeline 1.1.11-preview Phase In and Out效果预览 角色沿Y轴逐渐出现和消失 S ...

  6. 如何成功打造一款中台(PaaS)产品

    现如今,很多互联网公司在向“大中台,小前台”方向靠拢,通过打造高度可用.高度可定制的中台,来支撑前台业务的快速发展.个性化功能定制.但在构建中台产品(即所谓公司级平台)的时候,如何能成功让一款产品从0 ...

  7. Java 工程师成神之路 | 2019正式版

    本文为转载,原文见以下链接:https://mp.weixin.qq.com/s/4AMzq87V6eW3YPgE0mCdSw 1 基础篇 01 面向对象 → 什么是面向对象 面向对象.面向过程 面向 ...

  8. 取消win10 任务栏已固定的软件

    通过组策略编辑器 设置为“已禁用”,就可 ,自由取消已固定的图标.

  9. 三、CSS样式——列表

    概念: CSS列表属性允许你放置.改变列表标志,或者将图像作为列表项标志 属性 描述 list-style 简写列表项 list-style-image 列表项图像 list-style-positi ...

  10. bzoj4025二分图(线段树分治 并查集)

    /* 思维难度几乎没有, 就是线段树分治check二分图 判断是否为二分图可以通过维护lct看看是否链接出奇环 然后发现不用lct, 并查集维护奇偶性即可 但是复杂度明明一样哈 */ #include ...