Python学习笔记8_字符串的一些常用方法

一、常用的查找方法

方法说明
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,憨小缘
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值