python的字符串类型本质上是一种字符序列、是不可变的_Python第四课(序列之字符串)...

在Python中,字符串的使用随处可见,可被字符串调用的方法较之列表、元组也是最多。字符串也是Python的6中内建序列之一。

字符串的基本操作

作为序列,序列的通用操作(索引、分片、加法、乘法、成员资格、长度、最大值、最小值)对于字符串都是适用的。但是字符串和元组一样都是不可变的,所以对字符串进行分片赋值是不合法的。

格式化字符串

什么是格式化字符串?具有特定格式,可以通过给定值替换特定格式中被标记位置的字符串的操作叫格式化字符串。比如“%s年%s月%s日”中不改变字符串中的汉字部分,仅给出3个数字分别按顺序代替字符串中的“%s”标记的位置,来实现动态的年月日的输出。

为什么要用格式化字符串?和python中的函数一样,对于在频繁使用的情况下,对于某些格式复杂的字符串,避免频繁重复的输入固定代码。

使用方法:“%转换标志/字段宽度.精度/转换类型”%值

“%”:标记转换说明符的开始

转换标志:“-”表示左对齐;“+”表示在实数前加上正负号;“”(空白字符)表示在整数之前保留空格;“0”表示位数不够时使用字符“0”填充;

字段宽度:转换后的字符串至少要有该值的宽度。如果值为“*”表示宽度从后面的元组中读取

点.精度:如果转换的是实数,表示小数点后面的位数;如果转换的是字符串,表示转换后的字符串的最大字段宽度。如果是“*”表示精度值从元组中读取。

转换类型:s(string)表示字符型;d表示整型;f表示浮点型;最长用的是这三个字符类型

1.简单转换

1 >>> msg=‘‘‘**********info of %s**********2 ... name:%s3 ... age:%d‘‘‘

4 >>> print(msg%(‘lufei‘,‘lufei‘,19))5 **********info of lufei**********

6 name:lufei7 age:19

2.字段宽度

1 >>> ‘the price of aggs:%d‘%12

2 ‘the price of aggs:12‘

3 >>> ‘the price of aggs:%10d‘%12 #字段宽度 10

4 ‘the price of aggs: 12‘

3.转换标志

1 >>> ‘the price of aggs:%10d‘%12 #字符宽度 10

2 ‘the price of aggs: 12‘

3 >>> ‘the price of aggs:%-10d‘%12 #字符宽度 10 左对齐

4 ‘the price of aggs:12‘

5 >>> ‘the price of aggs:%+10d‘%12 #字符宽度 10 显示值的正负号

6 ‘the price of aggs: +12‘

7 >>> ‘the price of aggs:%+10d‘%-12 #字符宽度 10 显示值的正负号

8 ‘the price of aggs: -12‘

9 >>> ‘the price of aggs:%010d‘%12 #字符宽度 10 位数不够使用0填充

10 ‘the price of aggs:0000000012‘

4.精度

1 >>> ‘the price of aggs:%d‘%12

2 ‘the price of aggs:12‘

3 >>> ‘the price of aggs:%.5d‘%12 #转换的是整数,表示字段最大宽度,位数不足使用0填充

4 ‘the price of aggs:00012‘

5 >>> ‘login name:%s‘%‘operadmin‘

6 ‘login name:operadmin‘

7 >>> ‘login name:%.5s‘%‘operadmin‘ #转换的是字符串,表示字段最大宽度,超过最大宽度部分丢弃

8 ‘login name:opera‘

9 >>> ‘the price of aggs:%.5f‘%12 #转换的是实数,表示小数点后的位数

10 ‘the price of aggs:12.00000

字符串方法

1 1str.capitalize() 首字母大写2 2str.casefold() 字符串中的大写换成小写3 3str.center(width,filechar) 字符串居中打印4 4str.count(x,start,end) 统计某个子串在字符串中出现的次数5 5str.encode(self,encoding,errors)6 6str.endswith(self,suffix,start,end)判断字符串是否以某个子串结尾7 7str.expandtabs(tabsize)8 8str.find(sub,start,end)返回字符串中某个字符或者子串的索引。如果子串或者字符不存在返回-1

9 9str.format()字符串的格式化输出10 10str.index(sub,start,end)返回字符串中某个字符或者子串的索引。如果子串或者字符不存在报错“substring notfound”11 11str.isalnum()判断字符串是否只包含字母和数字12 12str.isalpha()判断字符串是否只包含字母字符13 13str.isdecimal()判断字符串是否仅包含数字14 14str.isdigit()判断字符串是否仅包含数字15 15str.identifier()判断字符串是否是一个标准的变量名16 16str.islower()判断字符串中的祖母字符是否都是小写字符17 17str.isnumeric()判断字符串是否仅包含数字18 18str.isprintable()判断字符串是否是一个可打印字符串19 19str.isspace()判断字符串是否仅包含空格20 20str.istitle()判断字符串是否是一个标题(单词首字母大写其他字母都小写)21 21str.isupper()判断字符串中的字母字符是否都是大写字符22 22str.join(sequence)在sequence中每两个元素间插入str23 23str.ljust(width,fillchar)字符串左对齐,宽度不够使用字符填充,默认使用空格填充24 24str.lower()将字符串中的大写字母转换为小写字母25 25str.lstrip(char)移除字符串开头指定的字符,默认为空格26 26maketrans27 27str.partition(str)根据指定的分隔符将字符串进行分割。如果字符串中包含分隔符则分会一个3元的元组28 28str.replace(old,new,count)使用指定的字符串替换掉原字符串中的某个字符或者子串,并可以指定替换数量29 29str.rfind(sub,start,end)返回字符串中某个字符或者子串的索引,从右侧开始查找。如果子串或者字符不存在则返回“-1”30 30str.rindex(sub,start,end)返回字符串中某个字符或者子串的索引。从右侧开始查询,如果子串或者字符不存在报错“substring notfound”31 31str.rjust(width,fillchar)功能与ljust相反,一个是左对齐一个是右对齐32 32str.rpartition(str)使用指定的分隔符分割字符串,从右侧开始查询分隔符作为分割点。返回一个3元的元组33 33str.rsplit(str,num)查找指定字符作为分割点分割字符串,从右侧开始查找,可指定分割成num个子字符串,返回分割后的子字符串组成的列表34 34str.rstrip(char)移除字符串末尾指定的字符,默认为空格35 35str.split(char,num)查找指定字符作为分割点分割字符串,可指定分割成num个子字符串,返回分割后的子字符串组成的列表36 36str.splitlines()按照行进行分割‘\n’‘\r\n’如果参数keepends为True则保留换行符,如果keepends为False则不保留换行符37 37str.startswith(char,start,end)判断字符串是否是以某个字符开始,可指定起始和结束位置38 38str.strip(char)移除字符串开头和末尾的指定字符,默认为空格39 39swapcase40 40str.upper()将字符串中的小写字母转换成大写字母41 41str.zfill(width)指定字符串的宽度,宽度不够字符串右对齐使用字符“0”填充

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值