字符串方法

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. 使用 FFMPEG 命令为视频嵌入字幕

    有些电影的视频与字幕是分离的,如果在视频中嵌入字幕,那么观看起来会更方便一些,不必在播放前额外去加载字幕文件. 在 Linux 中,可以使用 ffmpeg 命令实现上述功能. ffmpeg -i in ...

  2. 使用Netty开发RPC的技术原理

    本片文字摘抄自https://www.cnblogs.com/jietang/p/5615681.html 1.定义RPC请求消息.应答消息结构,里面要包括RPC的接口定义模块,包括远程调用的类名.方 ...

  3. awk命令基本使用方法

    awk命令 基本用法 awk '{print $1, $4}' netstat.txt 单引号中大括号的部分就是awk语句 $1至$n表示第几列,$0表示整行 格式化输出的方法 $ awk '{pri ...

  4. ROS多根adsl叠加负载均衡PCC的做法

    命令行: / ip firewall mangle1.保证访问局域网IP的时候不被PCC了.add chain=prerouting dst-address=10.1.1.0/24 action=ac ...

  5. Python【每日一问】07

    问:请解释使用 *args 和 **kwargs 的含义 答: *args:可变参数,表示将实参中按照位置传值,多余的值都给 args,多余的实参被打包成 tuple(元组),然后传递给函数调用 # ...

  6. 学习笔记——Ubuntu下使用Docker包部署禅道任务管理系统

    写此文目的:利用搭建禅道环境联系Docker基本使用方法,加深对Docker容器的理解,Ubuntu下面才能原生运行Docker,因此选择了Ubuntu 1.下载禅道开源版 wget http://d ...

  7. 01-使用eclipse新建一个标准的 java web项目

    1.使用eclipse创建个普通的Java SE项目  名称:CRM java web标准目录结构 crm WEB-INF classes lib web.xml 设置项目字节码输出目录

  8. MVC和WebApi的区别:

    1.mvc 和WebApi: 区别: a.MVC是建立网站的一种框架,倾向于返回用户的页面请求:webApi倾向于返回用户数据请求 b.mvc直接继承system.mvc.controller:web ...

  9. Python课程第二天作业

     一.统计字符串格式 要求: # 1.统计元组中所有数据属于字符串的个数,提示: isinstance() # 数据: t1 = (1, 2, '3', '4', 5, '6') # 结果: 3 代码 ...

  10. python类特列方法使用

    class Rgc(object): def __new__(cls, *args, **kwargs): print('在类通过__new__方法实例化一个对象') return super(Rgc ...