【学习打卡】P基础知识-字符串常用操作

【学习打卡】P基础知识-字符串常用操作拼接字符串可以用 运算符连接多个字符串并产生一个字符串对象 但字符串不允许直接与其他类型的数据连接

大家好,欢迎来到IT知识分享网。

拼接字符串

可以用“+”运算符连接多个字符串并产生一个字符串对象,但字符串允许直接与其他类型的数据连接。

str1 = "hello" str2 = "world" num = 123 print(str1+" "+str2) #输出:hello world print(str1+str2+num) #报错

计算字符串的长度

在python中,数字、英文、小数点、下划线和空格占1个字节;

一个汉字可能占2~4个字节,占几个字节取决于采用的编码,GBK/GB2312编码中占2个字节,UTF-8/unicode编码中一般占3个字节(或4个字节)。

len(string)
  • len():计算字符串的长度
  • string:用于指定要进行长度统计的字符串
str1 = '您好 world!' length1 = len(str1.encode()) #计算UTF-8编码的字符串的长度 print("utf-8:",length1) length2 = len(str1.encode('GBK')) #计算gbk编码的字符串的长度 print("gbk:",length2)

输出:

utf-8: 13

gbk: 11

截取字符串

可以采用切片方法实现

string[start : end : step]
  • string:表示要截取的字符串
  • start:表示要截取的第一个字符的索引(包括该字符)
  • end:表示要截取的最后一个字符的索引(不包括该字符)
  • step:切片的步长,如果省略,则默认为1
str1 = '您好 world!' str1_1 = str1[1] str1_2 = str1[3:] str1_3 = str1[:7] str1_4 = str1[1:7:2] print('原字符串:',str1) print(str1_1+"\n"+str1_2+"\n"+str1_3+"\n"+str1_4)

输出:

原字符串: 您好 world!

world!

您好 worl

好wr

分割字符串

字符串对象的split()方法可以实现字符串的分割

str.split(sep , maxsplit)
  • str:表示要进行分割的字符串
  • sep:用于指定分隔符,可以包含多个字符,默认为None
  • maxsplit:可选参数,用于指定分割的次数
  • 返回值:分割后的字符串列表
  • 注意:split方法中,如果不指定sep参数,那么也不能指定maxsplit参数
str1 = ' 您好! world!' print('原字符串:',str1) list1 = str1.split() #采用默认分隔符进行分割 list2 = str1.split(' ') #采用空格分割 list3 = str1.split('!',1) #采用“!”进行分割,并且只分割前1个 list4 = str1.split('o') #采用“o“分割 print(str(list1)+"\n"+str(list2)+"\n"+str(list3)+"\n"+str(list4))

输出:

原字符串: 您好! world!

[‘您好!’, ‘world!’]

[”, ‘您好!’, ‘world!’]

[‘ 您好’, ‘ world!’]

[‘ 您好! w’, ‘rld!’]

合并字符串

可以使用字符串对象的join()方法实现

strnew = string.join(iterable)
  • strnew:合并后生成的新字符串
  • string:字符串类型,用于指定合并时的分隔符
  • iterable:可迭代对象,该迭代对象中的所有元素将被合并为一个新的字符串
list = ['a','b','c','d'] str_list = ' *'.join(list) list_1 = "*"+str_list #由于使用join()方法时,第一个元素前不加分隔符,所以需要在前面加上*符号 print(list_1)

输出:

*a *b *c *d

检索字符串

1、count()方法

用于检索指定字符串在另一个字符串中出现的次数

str.count(sub[, start[, end]])
  • str:原字符串
  • sub:要检索的子字符串
  • start:可选参数,检索范围的起始位置的索引
  • end:可选参数,检索范围的结束位置的索引
str1 = ' 您好! world!' print(str1.count('!')) print(str1.count(' ',0,3))

输出:

2

1

2、find()方法

用于检索是否包含指定的子字符串,如果检索的字符串不存在,则返回-1,否则返回首次出现该子字符串时的索引

str.find(sub[, start[, end]])
  • str:原字符串
  • sub:要检索的子字符串
  • start:可选参数,检索范围的起始位置的索引
  • end:可选参数,检索范围的结束位置的索引
str1 = ' 您好! world!' print(str1.find('!')) print(str1.find('w',0,3))

输出:

3

-1

3、index()方法

与find()类似,用于检索是否包含指定的子字符串,但当指定的字符串不存在时会抛出异常

str.index(sub[, start[, end]])
  • str:原字符串
  • sub:要检索的子字符串
  • start:可选参数,检索范围的起始位置的索引
  • end:可选参数,检索范围的结束位置的索引
str1 = ' 您好! world!' print(str1.index('!')) print(str1.index('w',0,3)) #抛出异常

输出:

3

ValueError: substring not found

4、startswith()方法

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

str.startswith(prefix[, start[, end]])
  • str:原字符串
  • prefix:要检索的子字符串
  • start:可选参数,检索范围的起始位置的索引
  • end:可选参数,检索范围的结束位置的索引
str1 = ' 您好! world!' print(str1.startswith(' ')) print(str1.startswith('w',4,8)) 

输出:

True

False

5、endswith()方法:

用于检索字符串是否以指定子字符串结尾。如果时则返回True,否则返回False

str.endswith(suffix[, start[, end]])
  • str:原字符串
  • suffix:要检索的子字符串
  • start:可选参数,检索范围的起始位置的索引
  • end:可选参数,检索范围的结束位置的索引
str1 = ' 您好! world!' print(str1.endswith('!')) print(str1.endswith('好',0,3)) 

输出:

True

True

字母的大小写转换

1、lower()方法:大转小

用于将字符串中的大写字母转换为写字母

str.lower()
  • str:要进行转换的字符串
str1 = "hello WORLD" print(str1.lower())

输出:

hello world

2、upper()方法:小转大

用于将字符串中的小写字母转换为写字母

str.upper()
  • str:要进行转换的字符串
str1 = "hello WORLD" print(str1.upper())

输出:

HELLO WORLD

去除字符串中的空格和特殊字符

1、strip()方法:左右两侧

用于去掉字符字符串左、右两侧的空格和特殊字符

str.strip([chars])
  • str:为要去除空格的字符串
  • chars:可选参数,用于指定要去除的字符,可以指定多个
str1 = ' 您好! world!' print(str1.strip()) #去掉左右两侧的空格和特殊字符 print(str1.strip(' !')) #去掉左右两侧的空格和"!"

输出:

您好! world!

您好! world

2、lstrip()方法:左侧

用于去掉字符串左侧的空格和特殊字符串

str.lstrip([chars])
  • str:为要去除空格的字符串
  • chars:可选参数,用于指定要去除的字符,可以指定多个
str1 = '@您好! world!' print(str1.lstrip('@!')) #去掉左侧的@和!

输出

您好! world!

3、rstrip()方法:右侧

用于去掉字符串右侧的空格和特殊字符串

str.rstrip([chars])
  • str:为要去除空格的字符串
  • chars:可选参数,用于指定要去除的字符,可以指定多个
str1 = '@您好! world!' print(str1.rstrip('@!')) #去掉右侧的@和!

输出:

@您好! world

格式化字符串

1、%操作符

'%[-][+][0][m][.n]格式化字符'%exp
  • -:可选参数,用于指定左对齐,正数前方无符号,负数前面加负号
  • +:可选参数,用于指定右对齐,正数前方加正号,负数前面加负号
  • 0:可选参数,表示右对齐,正数前方无符号,负数前方加负号,用0填充空白处(一般和m参数一起使用)
  • m:可选参数,表示占有宽度
  • .n:可选参数,表示小数点后保留的位数

格式化字符

说明

格式化字符

说明

%s

字符串(采用str()显示)

%r

字符串(采用repr()显示)

%c

单个字符

%o

八进制整数

%d或者%i

十进制整数

%e

指数(基底写为e)

%x

十六进制整数

%E

指数(基底写为E)

%f或者%F

浮点数

%%

字符%

s = "序列:%03d 字母:%s 是的是的" s1 = (1,'a') s2 = (2,'b') print(s%s1) print(s%s2)

输出:

序列:002 字母:b 是的是的

2、format()方法

str.format(args)
  • str:指定字符串的显示样式(即模板)
  • args:指定要转换的项,如果多项,则用逗号进行分割
{[index][:[[fill]align][sign][#][width][.precision][type]]}
  • index:可选参数,用于指定要设置格式的对象在参数列表中的索引位置,索引值从0开始。如果省略,则根据值的先后顺序自动分配。
  • fill:可选参数,用于指定空白处填充的字符
  • align:可选参数,用于指定对齐方式,需要配合width一起使用(值为“<”时表示内容左对齐;值为“>”时表示内容右对齐;值为“=”时表示内容右对齐,只对数字类型有效,即将数字放在填充字符的最右侧,值为“^”时表示内容居中)
  • sign:可选参数,用于指定有无符号数(值为“+”表示正数加正号,负号加负号;值为“-”表示正数不变,负数加负号;值为空格表示正数加空格,负数加负号)
  • #:可选参数,对于二进制、八进制和十六进制数。如果加上#,则表示会显示0b/0o/0x前缀,否则不显示前缀
  • width:可选参数,用于指定所占宽度
  • .precision:可选参数,用于指定保留的小数位数
  • type:可选参数,用于指定类型

格式化字符

说明

格式化字符

说明

s

对字符串类型格式化

b

将十进制整数自动转化为二进制表示再格式化

d

十进制整数

o

将十进制整数自动转化为八进制表示再格式化

c

将十进制整数自动转化成对应的Unicode字符

x或者X

将十进制整数自动转化为十六进制表示再格式化

e或者E

转换为科学计数法表示再格式化

f或者F

转换为浮点数(默认小数点后保留6位)再格式化

g或者G

自动在e和f或者E和F中切换

%

显示百分比(默认小数点后保留6位)

s = "序列:{:0>3d} 字母:{:s} 是的是的" s1 = s.format(1,'a') s2 = s.format(2,'b') print(s1) print(s2)

输出:

序列:002 字母:b 是的是的

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/92753.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信