PYTHON 字符串常用操作

字符串的常用操作:

目录

字符串的常用操作:

1.1拼接字符串

1.2计算字符串的长度

1.3  截取字符串

1.4  分割字符串

1.5 检索字符串

1.6 字母的大小写转换

1.7 去除字符串空格和特殊字符

1.8 格式化字符串

1.1拼接字符串

使用‘+’运算符完成多个字符串的拼接

例如:m = '圆周率'        n = '3.1415926'        print(m+'——'+n)

执行以上代码,将显示:

圆周率——3.1415926

字符串不允许与其他数据类型拼接

解决类似问题可以利用str()函数将数据转换

1.2计算字符串的长度

由于不同字符所占的字节数有所不同,在计算字符串长度时,先了解一下各个字符所占的字节数

数字、英文、下划线、小数点、空格占一个字节

汉字根据情况的不同占2-4个字节:

汉字在GBK/GB2312编码中占2个字节               在UTF-8/Unicode占用三个字节/四个字节

我们用len()函数计算长度,string为字符串

格式;        len ( string )

例如:m = 'hello world'        print(len(m))

得到:11  (空格占一个)

实际开发时,有时需要字符实际的字节数

UTF-8编码汉字占三个字节:

str1 = '你好,world'

print(len(str1.encode()))

得到:14

如果是GBK编码

str1 = '你好,world'

print(len(str1.encode('gbk')))

得到:11

1.3  截取字符串

字符串属于序列,如果需要截取字符串,可以采用切片的方式

string [start : end : step]

string:要截取的字符串

start:截取第一个字符索引,如果不指定,默认为0

end:截取最后一个字符索引

step:切片的步长,如果省略,默认为1

1.4  分割字符串

分割字符串是把字符串分割为列表

字符串对象的split()方法可以实现字符串分割,也就是按照指定的分隔符切分为列表,该列表的元素中不包括分隔符:

str.split ( sep, maxsplit )

str:分割的字符串

sep:指定分隔符,默认为none

maxsplit:最大分割次数,默认为全部

返回值为字符串列表

使用split()方法时如果不指定参数,默认采用空白符分割,这时无论有几个空白都将作为一个分隔符分割

1.5 检索字符串

(1)count()方法        检索指定字符串在另一个字符串中出现的次数,如果检索的字符串不存在,则返回0,否则返回出现的次数

str.count(sub[,start[,end]])

str:表示原字符串

sub:表示要检索的子字符串

start:可选参数,表示检索范围的起始位置索引,如果不指定则从头开始检索

end:可选参数,表示检索范围的结束位置索引,如果不指定则一直检索到尾

例如:

str1 = '张三, 李四, 王五'

print('字符串', str1, '包括', str1.count(','), '个逗号')

结果为:字符串 张三, 李四, 王五 包括 2 个逗号

(2) find() 方法

该方法用于检索是否包含指定字符串。如果检索的字符串不存在,则返回-1,否则返回首次出现该字符串时的索引。其语法格式如下:

str.find(sub[, start[, end]])

str:表示原字符串

sub:表示要检索的子字符串

start:可选参数,表示检索范围起始位置的索引,默认为从头检索

end:可选参数,表示检索范围终止位置的索引,默认为检索到结尾

如果只是想要判断指定的字符串是否存在,可以使用in关键词实现

print('张三' in str1)

另外,python提供 rfind() 方法,作用与find()方法类似,只是从右边开始查找

(3) index() 方法

index() 与 find() 方法相似,用于检索是否包含指定的字符串,只不过如果使用 index() 方法,当指定的字符串不存在时会抛出异常

str.index(sub[,start[,end]])

另外,python还提供了rindex()方法,作用与 index() 类似,从右边开始查找

(4) startswith() 方法  (endswith()方法类似,检索是否用指定字符串结尾)

该方法用于检索字符串是否以指定子字符串开头。如果是则返回True,否则返回False

str.startswith(prefix[,start[,end]])

str:原字符串

prefix:表示要检索的子字符串

start:可选参数,表示检索范围起始位置的索引,默认为从头检索

end:可选参数,表示检索范围终止位置的索引,默认为检索到结尾

1.6 字母的大小写转换

python中,字符串对象提供了 lower() 方法与 upper()方法,进行字母的大小写转换

lower()方法 与 upper() 方法

用于将字符串的大写字母转换小写字母,如果没有需要被转换的字符,则将原字符串返回

str.lower()

另外有:

str.upper()

1.7 去除字符串空格和特殊字符

用户在输入数据时,可能会无意中输入多余的空格,或在一些情况下,字符串前后不允许出现空格和特殊字符(特殊字符指制表符\t,回车符\r,换行符\n)

(1) strip()方法

用于去掉字符串左右两边空格和特殊字符

str.strip([chars])

str:要去除空格的字符串

char:可选参数,用于指定要去除的字符,可以指定多个,如果设置chars为',%',则去除左右两侧字符',' , '%',如果不指定参数,默认去除空格、制表符、回车符、换行符

(2)  lstrip()方法

用于去除左侧空格和特殊字符

str.lstrip([chars])

(3)retrip()方法

用于去除右侧空格和特殊字符

str.rstrip([chars])

(2)、(3) 参数含义与 (1) 相同

1.8 格式化字符串

格式化字符串就是先指定一个模板,在这个模板上预留几个空位,然后根据需要填上相应内容

这些空位需要通过指定的符号标记(其实就是占位符),这些符号不会显示

方法一:使用%操作符

格式:'%s' % str

%s:根据需要转换不同类型变化,比如%d——十进制格式输出,%s——字符串类型输出

str:每次需要不同变量

例如:

named = '张三'

num1 = 20

print('姓名':%s\n  '年龄':%d' %(named,num1))

代码结果是  

姓名:张三

年龄:20

方法二:format() 方法

语法格式:str.format(args)

str:模板

args:指定要转换的项,如果多项,用逗号进行分割

模板格式:

{ [index]  [: [ [fill] align] [sign] [#] [width] [.precision] [type] ]}

index:可选参数,用于指定要设置格式的对象在参数列表中的索引位置,索引值从0开始,默认根据值的先后顺序自动分配

fill:可选参数,用于指定空白处的填充符

align:可选参数,用于指定对齐方式(值为'<'表示内容左对齐,'>'和'='表示右对齐,''^)表示居中

sign:可选参数用于指定无符号数

#:对于二进制、八进制、十六进制,加上#,显示0b/0o/0x前缀

width:指定所占宽度

.precision:指定保留的小数位数

type:指定类型

例如:

moban = '学号:{:0>3s}\t 班级:{%s}\t 姓名:{%s}'

print(moban.format('5', '一班', '张三'))

代码结果为:

学号:005

班级:一班

姓名:张三

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值