python字符串进阶

本文详细介绍了Python字符串的进阶操作,包括字符串的拼接、重复、跨行拼接和索引,以及字符串的切片、方法(如capitalize、title、upper、lower等)和格式化。此外,还涵盖了字符串的长度计算、字符计数、查找、填充、分割、替换等多种功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串进阶

一、字符串相关操作

(1)字符串的拼接
(2)字符串的重复
(3)字符串跨行拼接
(4)字符串的索引
(5)字符串的切片:
语法 =>
字符串[ : : ] 完整格式:[开始索引:结束索引: 间隔值]
[开始索引: ] 从开始索引截取到字符串最后
[ :结束索引] 从开头截取到结束索引之前(结束索引-1)
[开始索引:结束索引] 从开始索引截取到结束索引之前
[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定间隔截取字符
[ : ]或[ : : ] 截取所有字符串

1、字符串的拼接(用+拼接)

strvar1 = "我今天"
strvar2 = "去了超市"
strvar3 = "购买日用品"
res = strvar1 + strvar2 + strvar3
print(res)

运行结果:
运行结果

如图,三段字符串按照加号进行了拼接。

2、字符串的重复(用*进行重复输出)

strvar = "人生苦短,我用python\n"
res = strvar * 3
print(res)

运行结果:
运行结果

如图,*可连续输出三次指定字符串(\n为换行符,可进行换行)

3、字符串的跨行拼接(用\跨行拼接)

strvar = "人生苦短,"\
"我用python"
res = strvar
print(res)

运行结果:
运行结果

4、字符串的索引(可通过索引获取对应字符)

#正向索引   0 1 2 3
strvar = "人生苦短"
#逆向索引  -4-3-2-1
res = strvar[1]
print(res)

运行结果:
运行结果

5、字符串的切片(切片 <–>截取)

(1)[开始索引:] 从开始索引截取到字符串最后

strvar = "人生苦短,我用python"
res = strvar[5:]
print(res)

运行结果:
运行结果

如图,从第五个字符读到最后。

(2)[:结束索引] 从开始索引截取到结束索引之前,注意是结束索引之前。

strvar = "人生苦短,我用python"
res = strvar[:4]
print(res)

运行结果:

运行结果

(3)[开始索引:结束索引] 从开始索引截取到结束索引之前

strvar = "人生苦短,我用python"
res = strvar[2:7]
print(res)

运行结果:
运行结果

(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
#正序
res = strvar[::2]
#倒序
res = strvar[::-2]

strvar = "人生苦短,我用python"
res1 = strvar[::2]
res2 = strvar[::-2]
print(res1)
print(res2)

运行结果:
运行结果

(5)[:]或[::]截取所有字符串

strvar = "人生苦短,我用python"
res1 = strvar[:]
res2 = strvar[::]
print(res1)
print(res2)

运行结果:
运行结果

如图,两种方法截取了所有字符串。

二、字符串的方法

1、*capitalize 字符串首字母大写

strvar = "how old are you,3 Years Old"
res = strvar.capitalize()
print(res)

运行结果:
运行结果

2、*title 每个单词首字母大写

strvar = "how old are you,3 Years Old"
res = strvar.title()
print(res)

运行结果:
运行结果

3、*upper 所有字母大写

strvar = "how old are you,3 Years Old"
res = strvar.upper()
print(res)

运行结果:
运行结果

4、*lower 所有字母小写

strvar = "how old are you,3 Years Old"
res = strvar.lower()
print(res)

运行结果:
运行结果

有个常用用法,是用户输入字符串时,可将其字母转化为大写或小写以达到忽略大小写的目的。

5、*swapcase 字母大小写互换

strvar = "how old are you,3 Years Old"
res = strvar.swapcase()
print(res)

运行结果:
运行结果

6、len() 计算字符串长度

strvar = "how old are you,3 Years Old"
res = len(strvar)
print(res)

运行结果:
运行结果

7、*count() 计算字符串中某个字符个数

strvar = "how old are you,3 Years Old"
res = strvar.count("o")
print(res)

运行结果:
运行结果

8、*find 寻找字符串中某字符所在的第一个位置索引

用法:find(“字符”,开始索引,结束索引)
如果找不到返回-1

strvar = "how old are you,3 Years Old"
res1 = strvar.find("3",16,)
res2 = strvar.find("3",0,15)
print(res1)
print(res2)

运行结果:
运行结果

9、*index 功能与find相同

与find区别:找不到字符直接报错,不会返回-1

strvar = "how old are you,3 Years Old"
res1 = strvar.index("3",16,)
res2 = strvar.index("3",0,15)
print(res1)
print(res2)

运行结果:
运行结果

以上,推荐使用find!

10、*startswith 判断是否以某个字符或字符串开头

用法: startswith(“字符或字符串”:开始索引:结束索引),如果存在返回True,不存在返回False。

strvar = "how old are you,3 Years Old"
res = strvar.startswith("3 Y",16,)
print(res)

运行结果:
运行结果

11、*endswith 判断是否以某个字符和字符串结尾

用法:endswith(“字符或字符串”:开始索引:结束索引)

strvar = "how old are you,3 Years Old"
res = strvar.endswith("ld",16,)
print(res)

运行结果:
运行结果

12、*isupper 判断字符串是否是大写

strvar = "how old are you,3 Years Old"
res = strvar.isupper()
print(res)

运行结果:
运行结果

13、*islower 判断字符串是否是小写

strvar = "how old are you,3 Years Old"
res = strvar.islower()
print(res)

运行结果:
运行结果

14、*isdecimal 判断字符串是否以数字组成

# strvar = "how old are you,3 Years Old"
strvar = "1234567890"
res = strvar.isdecimal()
print(res)

运行结果:
运行结果

15、*ljust 填充字符串原字符居左(默认填充空格)

# strvar = "how old are you,3 Years Old"
strvar = "abc"
res = strvar.ljust(10,"*")
print(res)

运行结果:
运行结果

16、*rjust 填充字符串原字符串居右(默认填充空格)

# strvar = "how old are you,3 Years Old"
strvar = "abc"
res = strvar.rjust(10)
print(res)

运行结果:
运行结果

17、*center 填充字符串原字符串居中(默认填充空格)

strvar = "abc"
res = strvar.center(10,"*")
print(res)

运行结果:
运行结果

18、*strip 默认去掉首位两边空白符

strvar = "  how old are you,3 Years Old "
res = strvar.strip()
print(res)

运行结果:
运行结果

19、rstrip 去掉右边某个字符(默认去空白符)

strvar = "@@@how old are you,3 Years Old@@@@@"
res = strvar.rstrip("@")
print(res)

运行结果:
运行结果

20、lstrip 去掉左边某个字符(默认去掉空白符)

strvar = "@@@how old are you,3 Years Old@@@@@"
res = strvar.lstrip("@")
print(res)

运行结果:
运行结果

21、*split 按某字符将字符串分割成列表(默认字符是空格)

(1)默认按空格分割

strvar = "how old are you,3 Years Old"
res = strvar.split()
print(res)

运行结果:
运行结果

(2)指定分割符进行分割

strvar = "how-old-are-you,3-Years-Old"
res = strvar.split("-")
print(res)

运行结果:
运行结果

(3)从右到左分割,并且指定分割符和分割次数

strvar = "how-old-are-you,3-Years-Old"
res = strvar.rsplit("-",2)
print(res)

运行结果:
运行结果

22、*join 按照某字符将列表拼接成字符串(容器类型皆可)

strvar = ['how', 'old', 'are', 'you,3', 'Years', 'Old']
res = "-".join(strvar)
print(res)

运行结果:
运行结果

23、*relpace 字符串替换

用法:replace(“被替换字符或字符串”,“替换字符或字符串”)

strvar = "how-old-are-you,3-Years-Old"
res = strvar.replace("old","tall")
print(res)

运行结果:
运行结果

三、字符串的格式化

1、顺序传参

strvar = "how old {},{} Years Old".format("are you",3)
print(strvar)

运行结果:
运行结果

2、索引传参

根据索引进行传参:

strvar = "how old {1},{0} Years Old".format(3,"are you")
print(strvar)

运行结果:
运行结果

3、关键字传参

可以根据关键字进行传参:

strvar = "how old {who},{years} Years Old".format(years=3,who="are you")
print(strvar)

运行结果:
运行结果

4、容器类型数据传参(列表、元组等)

strvar = "how old {0[0]},{1[1]} Years Old".format(["are you","Wangsir","Lisir"],(12,3,29,18,32,50))
print(strvar)

运行结果:
运行结果

注意:在容器类型数据传参是,不能使用逆向下标。

如果容器类型是字典,直接写键值,不需要加引号:

strvar = "how old {0[friend1]},{1[2]} Years Old".format({"me":"are you","friend1":"Wangsir","friend":"Lisir"},(12,3,29,18,32,50))
print(strvar)

运行结果:
运行结果

5、format填充字符的使用

(1) > 原字符串居右
(2) < 原字符串居左
(3) ^ 原字符串居中

{who:*^10}
who 关键字参数
* 要填充的字符
^ 原字符串居中
10 总长度: 原字符串长度 + 填充字符串长度

strvar = "how old {who:*>10},{years:#^9} Years Old".format(who="Lisir",years=27)
print(strvar)

运行结果:
运行结果

6、进制转换等特殊符号的使用( “: d” “: f” “: s”)

(1) :d 整型占位符(要求类型必须为整型)

strvar = "how old Lisir,{:d} Years Old".format(27)
print(strvar)

运行结果:
运行结果

:2d 占用两位,不够两位拿空格来补,默认居右

可用> < ^来调整位置:

strvar = "how old {:s},{:^6d} Years Old".format("Lisir",27)
print(strvar)

运行结果:
运行结果

(2):f 浮点型占位符(要求类型必须为浮点型)

strvar = "how old Lisir,{:f} Years Old".format(27.5)
print(strvar)

运行结果:
运行结果

:.2f 可保留小数点两位

(3): s 字符串占位符(要求数据类型必须为字符串)

strvar = "how old Lisir,{:s} Years Old".format("27")
print(strvar)

运行结果:
运行结果

(4):,金钱占位符

strvar = "{:,}".format(214151235612)
print(strvar)

运行结果:
运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值