一、常用的查找方法
方法 | 说明 |
---|---|
len() | 计算字符串长度 |
startswith | 以指定字符串开头 |
endswith | 以指定字符串结尾 |
find | 第一次出现指定字符串的位置 |
rfind | 最后一次出现指定字符串的位置 |
count | 计算指定字符串出现的次数 |
isalnum | 所有字符全是字母或数字 |
# 字符串的查找方法
a = '''这个世界收到了你们的信息。\
我是这个世界的一个和平主义者,我首先收到信息是你们文明的幸运,\
警告你们:不要回答!不要回答!不要回答!!!\
你们的方向上有千万颗恒星,只要不回答,这个世界就无法定位发出源。\
如果回答,发射器将被定位,你们的文明将遭到入侵,你们的世界将被占领!\
不要回答!不要回答!!不要回答!!!'''
print("这句话的长度:", len(a)) # 输出:这句话的长度: 150
print(a.startswith("这个世界")) # 输出:True
print(a.endswith("不要回答!!!")) # 输出:True
print(a.find("世界")) # 输出:2
print(a[0]) # 输出:这
print(a.rfind("世界")) # 输出:125
print(a.count("不要回答")) # 输出:6
print(a.isalnum()) # 输出:False
b = "abh15a2"
print(b.isalnum()) # 输出:True
二、去除首尾信息
可以使用 strip() 去除字符串首尾指定信息。通过 lstrip() 去除字符串左边指定信息;rstrip() 去除字符串右边指定信息。
# 使用strip() 去除首尾指定信息 测试
a = "你爱我,我爱你"
print(a.strip("你")) # 输出:爱我,我爱
# 使用lstrip() 去除左边指定信息
print(a.lstrip("你")) # 输出:爱我,我爱你
# 使用rstrip() 去除右边指定信息
print(a.rstrip("你")) # 输出:你爱我,我爱
三、大小写转换
常用的函数 | 说明 |
---|---|
capitalize() | 产生新的字符串,首字母大写 |
title() | 产生新的字符串,每个单词首字母大写。 注意单引号 ’ 后面的第一个字母也大写。 |
upper() | 产生新的字符串,所有的字符全转成大写 |
lower() | 产生新的字符串,所有的字符全转成小写 |
swapcase() | 产生新的字符串,所有的字母大小写转换 |
# 大小写转换测试
a = "hello,I'm Hanhanyuan's girlfriend"
print(a.capitalize()) # 输出:Hello,i'm hanhanyuan's girlfriend
print(a.title()) # 输出:Hello,I'M Hanhanyuan'S Girlfriend
print(a.upper()) # 输出:HELLO,I'M HANHANYUAN'S GIRLFRIEND
print(a.lower()) # 输出:hello,i'm hanhanyuan's girlfriend
print(a.swapcase()) # 输出:HELLO,i'M hANHANYUAN'S GIRLFRIEND
四、排版格式
函数 | 说明 |
---|---|
center() | 居中对齐 |
ljust() | 左对齐 |
rjust() | 右对齐 |
# 排版格式 测试
a = "hello"
# 居中对齐
print(a.center(15,".")) # 输出:.....hello.....
# 左对齐
print(a.ljust(15,".")) # 输出:hello..........
# 右对齐
print(a.rjust(15,".")) # 输出:..........hello
五、一些其他的方法
函数 | 说明 |
---|---|
isalnum() | 检测字符串是否为字母或数字 |
isalpha() | 检测字符串是否只由字母组成(含汉字) |
isdigit() | 检测字符串是否只由数字组成 |
isspace() | 检测字符串是否为空白符 |
isupper() | 检测字符串是否全为大写字母 |
islower() | 检测字符串是否全为小写字母 |
# 检测为数字或字母
a = "asdas15"
print(a.isalnum()) # 输出:True
# 检测字符串是否只由字母组成(含汉字)
b = "Iam憨憨缘"
print(b.isalpha()) # 输出:True
print("I am 憨憨缘".isalpha()) # 输出:False
# 检测字符串是否数字组成
c = "s123456"
print(c.isdigit()) # 输出:False
print("123456".isdigit()) # 输出:True
# 检测字符串是否为空白符
d = " "
print(d.isspace()) # 输出:True
# 检测字符串是否为大写字母
e = "I love you"
print(e.isupper()) # 输出:False
print("HHY".isupper()) # 输出:True
# 检测字符串是否为小写字母
f = "hanhanyuan"
print(f.islower()) # 输出:True
print("HHy".islower()) # 输出:False
六、数字格式化
① format()基本用法
Python2.6开始,新增一种格式化字符串的函数str.format(),它增强了字符串格式化的功能。
基本语法:通过 { } 和 : 来代替以前的 % 。
format函数可以接受不限个参数,位置可以不按顺序。
我们可以通过 {索引}/{参数名},直接映射参数值,实现对字符串的格式化。
# 格式化的学习
# 索引方式
a = "你好,我是{0},来自{1},多民族聚集的{1},是一个歌舞的海洋。"
print(a.format("憨憨缘","贵州"))
# 输出:你好,我是憨憨缘,来自贵州,多民族聚集的贵州,是一个歌舞的海洋。
# 参数名方式
b = "你好,我是{name},来自{area},多民族聚集的{area},是一个歌舞的海洋。"
print(b.format(name="憨憨缘",area="贵州"))
# 输出:你好,我是憨憨缘,来自贵州,多民族聚集的贵州,是一个歌舞的海洋。
② 填充和对齐
填充常跟对齐一起使用
^、<、> 分别是居中、左对齐、右对齐,后面带宽度。: 号后面带填充字符,只能是一个字符,不指定就默认为空格字符填充。
# 填充和对齐的使用
a = "hello,{:.^9}"
print(a.format("憨憨缘")) # 输出:hello,...憨憨缘...
③ 数字格式化
浮点数通过 f ,整数通过 d 进行需要的格式化。
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
8848.8600 | {0:.2f} | 8848.86 | 保留小数点后两位 |
+8848.8600 | {0:+.2f} | +8848.86 | 带符号保留小数点后两位 |
8848.8600 | {0:.0f} | 8849 | 不带小数 |
8848 | {0:0>6d} | 008848 | 数字补零(填充左边,宽度为6) |
8848 | {0:x<6d} | 8848xx | 数字补x(填充右边,宽度为6) |
88480 | {0:x<6d} | 88480x | 数字补x(填充右边,宽度为6) |
8848.8600 | {0:,} | 8,848.86 | 以逗号分隔的数字格式 |
8848.8600 | {0:.2%} | 884886.00% | 百分比格式 |
8848.8600 | {0:.2e} | 8.85e+03 | 指数格式 |
8848 | {0:12d} | 8848 | 右对齐(默认,宽度为12) |
8848 | {0:<12d} | 8848 | 左对齐(宽度为12) |
8848 | {0:^12d} | 8848 | 居中对齐(宽度为12) |
# 数字格式化
# 保留小数点后两位
a = "数字:{0:.2f} "
print(a.format(8848.8600)) # 输出:数字:8848.86
# 带符号保留小数点后两位
b = "数字:{0:+.2f} "
print(b.format(+8848.8600)) # 输出:数字:+8848.86
# 不带小数
c = "数字:{0:.0f} "
print(c.format(8848.8600)) # 输出:数字:8849
# 数字补零(左边补零,宽度为6)
d = "数字:{0:0>6d} "
print(d.format(8848)) # 输出:数字:008848
# 数字补x(填充右边,宽度为6)
e = "数字:{0:x<6d} "
print(e.format(8848)) # 输出:数字:8848xx
# 数字补x(填充右边,宽度为6)
e1 = "数字:{0:x<6d} "
print(e1.format(88480)) # 输出:数字:88480x
# 以逗号分隔的数字格式
f = "数字:{0:,} "
print(f.format(8848.8600)) # 输出:数字:8,848.86
# 百分比格式
p = "数字:{0:.2%} "
print(p.format(8848.8600)) # 输出:数字:884886.00%
# 指数格式
g = "数字:{0:.2e} "
print(g.format(8848.8600)) # 输出:数字:8.85e+03
# 右对齐(默认,宽度为10)
f1 = "数字:{0:10d} "
print(f1.format(8848)) # 输出:数字: 8848
# 左对齐(宽度为10)
f2 = "数字:{0:<10d} "
print(f2.format(8848)) # 输出:数字:8848
# 居中对齐(宽度为10)
f3 = "数字:{0:^10d} "
print(f3.format(8848)) # 输出:数字: 8848
④ 可变字符串
Python中,字符串属于不可变对象,不支持原地修改。如果需要修改其中的值,只能创建新的字符串对象。但是,如果确实需要原地修改字符串,可以使用 io.StringIO对象 或 array模块。
# 可变字符串
import io # 引入io模块
a = "hello,憨憨缘"
aio = io.StringIO(a)
print(aio.getvalue()) # 输出:hello,憨憨缘
print(aio) # 输出:<_io.StringIO object at 0x0000020868B13E20>
aio.seek(0)
print(aio.seek(0)) # 输出:0
aio.write("二1") # 指针移动到字符下标的第 0 个
print(aio.getvalue()) # 输出:二ello,憨憨缘
aio.seek(7) # 指针移动到字符下标的第 7 个
print(aio.seek(7)) # 输出:7
aio.write("小")
print(aio.getvalue()) # 输出:二ello,憨小缘