python 字符串总结

目录

标题1 字符串的大小写转换

标题2 字符串的查找

标题3 字符串的对齐

标题4 字符串的分割与连接

标题5 字符串的格式化

(1)占位符(format函数)

(2)对齐

(3)千位分隔符

(4)精度确定

(5)进制转换

(6)浮点数

标题6 f字符串


九大内置函数
序号函数名功能
1len()len()函数求出字符串内元素的个数
2max()max()函数会返回字符串内在字典中最大的元素
3min()min()函数会返回字符串内在字典中最小的元素
4list()list()函数让字符串转换成列表
5tuple()tuple()函数让字符串转换成元组
6str()str()函数对字符串本身没有用处
7sorted()sorted()函数让字符串元素进行排序
8reversed()reversed()函数让字符串元素反转
9enumerate()enumerate()函数让字符串的索引和元素合成元组
# 九大内置函数
str1 = "大概火车"
print(len(str1))    # len()函数求出字符串内元素的个数
print(max(str1))    # max()函数会返回字符串内在字典中最大的元素
print(min(str1))    # min()函数会返回字符串内在字典中最小的元素
# print(sum(str1))  # 无法使用
print(list(str1))   # list()函数让字符串转换成列表
print(tuple(str1))  # tuple()函数让字符串转换成元组
print(str(str1))    # str()函数对字符串本身没有用处
print(sorted(str1)) # sorted()函数让字符串元素进行排序
print(list(reversed(str1))) # reversed()函数让字符串元素反转
print(list(enumerate(set1))) # enumerate()函数让字符串的索引和元素合成元组

字符串的大小写转换

共九种函数,格式是:str.函数名称()  注意:一定要加括号!!!

序号函数功能
1str.title()让字符串的每个单词首字母大写,其他字母都小写
2str.istitle()判断该字符串是否每个单词首字母都大写,其他字母都小写
3str.capitalize()让字符串第一个单词的首字母大写,其他字母小写(最常用)
4str.casefold()让字符串的所有字母都小写(支持多种不同的语言)
5str.upper()让字符串中的所有字母都大写
6str.isupper()判断该字符串是否每个单词都大写
7str.lower()让字符串中的所有字母都小写(只支持ASCELLA表中的字符)
8str.islower()判断该字符串是否每个单词都小写
9str.swapcase()让字符串中的所有字母,大写转换为小写,小写转换为大写
# 字符串的转换
x = "I love China"      # 例子

print(x.title())        # 让字符串的每个单词首字母大写,其他字母都小写
"结果:I Love China"
print(x.istitle())      # 判断该字符串是否每个单词都大写,其他字母都小写
"结果:False"

print(x.capitalize())   # 让字符串首字母大写,其他字母小写(最常用)
"结果:I love china"

print(x.casefold())     # 让字符串的所有字母都小写(支持多种不同的语言)
"结果:i love china"

print(x.upper())        # 让字符串中的所有字母都大写
"结果:I LOVE CHINA"
print(x.isupper())      # 判断该字符串是否每个单词都大写
"结果:False"

print(x.lower())        # 让字符串中的所有字母都小写(只支持ASCELLA表中的字符)
"结果:i love china"
print(x.islower())      # 判断该字符串是否每个单词都小写
"结果:False"

print(x.swapcase())     # 让字符串中的所有字母,大写转换为小写,小写转换为大写
"结果:i LOVE cHINA"
字符串的查找

共9种函数 格式是:str.函数名()

序号函数说明功能
1str.count(sub_string, start, end)sub_string:要统计的字符(必填)统计字符串中某字符出现的次数,返回值为int类型
start:int 类型 开始搜索的位置(非必填)
end:int 类型 结束搜索的位置(非必填)
2str.find()从左往右找第一个字符,返回下标。如果找不到,报错
3str.rfind()从右往左找第一个字符,返回下标
4str.index()从左往右找第一个字符,返回下标.如果找不到,返回-1
5str,rindex()从右往左找第一个字符,返回下标
6str.startswitch()判断字符串的第一个字符是不是该字符,返回bool值
7str.endswith()判断字符串的最后一个字符是不是该字符,返回bool值

# 字符串的查找
y = "上海自来水来自海上"  # 例子

print(y.count("海"))     # 统计"海"在字符串中出现的次数
"结果:2"
print(y.count("海", 0, 5))       # 统计"海"在第一个字符到第四个字符出现的次数
"结果:1"

print(y.find("海"))      # 从左往右找第一个"海",返回下标
"结果:1"
print(y.rfind("海"))     # 从右往左找第一个"海",返回下标
"结果:7"

print(y.index("海"))     # 从左往右找第一个"海",返回下标
"结果:1"
print(y.rindex("海"))    # 从右往左找第一个"海",返回下标
"结果:7"

print(y.find("郑"))      # find当字符在字符串中找不到的时候,会返回 -1
"结果:-1"
print(y.index("郑"))     # index当字符在字符串中找不到的时候,会报错
"结果:报错"

print(y.startswith("上"))    # 判断字符串的第一个字符是不是"上"
"结果:True"
print(y.startswith(("上", "下")))     # 当参数是元组的时候,只要有一个元素判断正确,返回就正确
"结果:True"

print(y.endswith("上"))      # 判断字符串的最后一个字符是不是"上"
"结果:True"
print(y.endswith(("上", "下")))       # 当参数是元组的时候,只要有一个元素判断正确,返回就正确
"结果:True"

字符串的对齐

共4种函数(还有一个可以替代,这里就不写出来) 格式:str.函数名()

序号函数说明功能
1str.center(width, fillchar)width:int类型 字符串的宽度(必填)
fillchar:str类型 填充空格字符串(非必填)
居中对齐
2str.ljust(width, fillchar)同上左对齐
3str.rjust(width, fillchar)同上右对齐
# 字符串的对齐
z = "肥龙飞天"
print(z.center(14))    # 居中对齐,括号内参数:第一个是该字符串的总长度,第二个是填充空白位置(写字符串或者不填)
"结果:     肥龙飞天     "
print(z.ljust(14, "0"))     # 左对齐
"结果:肥龙飞天0000000000"
print(z.rjust(14, "0"))     # 右对齐
"结果:0000000000肥龙飞天"

字符串的分割与连接
共五个
序号函数名说明功能
分割字符串   
1str.strip()去除字符串前后的空格与换行符,不能去除字符串中间的
2str.split(str="",num= [n])str:表示指定以""来分割去除字符串的指定的东西,返回值是一个表格
num:表示要分割几次(默认是字符串中该字符出现的次数)
n:表示要取出第几个元素
3str.splitlines(bool)True:表示显示换行符去除字符串的换行符
False:表示不显示换行符(默认)
连接字符串   
4+把两个字符串拼接起来
5"".join(str)str:表示参数的数据类型必须属于字符串,或者是字符串序列把数据容器中的所有元素挨个与""里面的内容添加
# 字符串的分割与连接

# 字符串的分割
s1 = "   肥龙  胖田   "
s2 = "肥龙, 胖田"
s3 = "肥龙\r胖田"

print(s1)    # 没有分割的时候
"结果:   肥龙  胖田   "
print(s2)
"结果:肥龙, 胖田"
print(s3)
"结果:胖田"

print(s1.strip())    # 分割字符串的空格
"结果:肥龙  胖田"

print(s2.split(","))    # 分割字符串的逗号
"结果:['肥龙', ' 胖田']"

print(s3.splitlines())       # 分割字符串的回车符。参数True保留回车符,参数False不保留回车符。默认参数为False。返回值是列表。
"结果:['肥龙', '胖田']"

print(s3.splitlines(True))   # 保留回车符
"结果:['肥龙\r', '胖田']"

# 字符串的连接

print("1" + s1)  # 使用"+"来连接字符串
"结果:1   肥龙  胖田   "

print("1".join(s2))  # 使用join函数来连接(面对字符串会每个字符都拼接)
"结果:肥1龙1,1 1胖1田"
print("1".join(["肥龙", "胖田"]))  # 面对列表、元组、集合这种数据类型时,会每个元素都拼接(如果只是把两个字符串连接,那前面就定义一个空字符串就可以)
"结果:肥龙1胖田"
print("1".join({"我":"肥龙", "你":"胖田"}))   # 面对字典这种数据容器时,只会拼接key,不会拼接value
"结果:我1你"

字符串的格式化
(1)占位符(format函数)
序号传参方式格式
1默认传参"{}".format(xxx)
2下标传参"{0}".format(xxx)
3关键字传参"{0}".format(0=xxx)
4列表传参"{}".format(*[xxx])
5元组传参"{}".format(*())
6集合传参"{}".format(*{})
7字典传参"{}".format(*{"":""})
# 占位符
print("今年是{}年{}月{}号".format(2022, 9, 10))   # 默认从左到右填写
"结果:今年是2022年9月10号"
print("今年是{2}年{1}月{0}号".format(2022, 9, 10))    # 按照对应下标填写
"结果:今年是10年9月2022号"
print("今年是{year}年{month}月{data}号".format(year=2022, month=9, data=10))  # 按照关键字填写
"结果:今年是2022年9月10号"
print("今年是{}年{}月{}号".format(*[2022, 9, 10]))    # 列表传参(前面要加*)
"结果:今年是2022年9月10号"
print("今年是{}年{}月{}号".format(*(2022, 9, 10)))    # 元组传参
"结果:今年是2022年9月10号"
print("今年是{}年{}月{}号".format(*{2022, 9, 10}))    # 集合传参
"结果:今年是2022年9月10号"
print("今年是{}年{}月{}号".format(*{"0": "2022", "1": "9", "2": "10"}))   # 字典传参(只能传key)
"结果:今年是0年1月2号"
(2)对齐

格式:"{:}".format()

序号格式说明功能
1"{:x>y}".format()>:左对齐让字符在规定空间中左对齐
x表示空格处用什么填补(可省略)
y表示该字符占几格(最好要填)
2"{:x<y}".format()<:右对齐让字符在规定空间中右边对齐
x表示空格处用什么填补(可省略)
y表示该字符占几格(最好要填)
3"{:x^y}".format()^:居中对齐让字符在规定空间中居中对齐
x表示空格处用什么填补(可省略)
y表示该字符占几格(最好要填)
 
# 对齐
print("{:>8}".format(5))    # 表示8个字符空间中,向左对齐
"结果:       5"
print("{:->8}".format(5))   # 表示8个字符空间中,向右对齐,并且空格用"-"来补充
"结果:-------5"
print("{:<8}".format(5))    # 表示8个字符空间中,向右对齐
"结果:5       "
print("{:-<8}".format(5))   # 表示8个字符空间中,向左对齐,并且空格用"-"来补充
"结果:5-------"
print("{:^8}".format(5))    # 表示8个字符空间中,居中对齐
"结果:   5    "
print("{:-^8}".format(5))   # 表示8个字符空间中,居中对齐,并且空格用"-"来补充
"结果:---5----"
(3)千位分隔符

格式:"{:}".format()

序号格式说明
1"{:,}".format()当所填入的数字不足1000的时候,不会出现分隔符
# 千位分隔符
print("{:,}".format(10000000))  # 只能使用逗号进行分隔
"结果:10,000,000"
print("{:,}".format(100))   # 当所输入的数字不足一千的时候,分隔符不会出现
"结果:100"
(4)精度确定

格式:"{:}".format()

序号格式说明
1"{:+/-.xf}".format()

+/-:正号表示保留符号,负号表示不保留符号(默认)  

x:表示要保留几位小数

f:表示十进制的浮点数,也就是小数

# 精度确定
print("{:.2f}".format(1000.0000))   # 保留小数点后两位
"结果:1000.00"
print("{:+.2f}".format(1000.0000))  # 带符号保留小数点后两位
"结果:+1000.00"
print("{:.2}".format("1000.0000"))  # 保留字符串的前两个
"结果:10"
(5)进制转换
序号格式说明功能
1"{:#b}".format()#:表示要不要加进制符(可不填)转成二进制
b:表示二进制
2"{:#o}".format()#:表示要不要加进制符(可不填)转成八进制
o:表示八进制
3"{:#d}".format()#:表示要不要加进制符(可不填)转成十进制
d:表示十进制
4"{:#x}".format()#:表示要不要加进制符(可不填)转成十六进制
x:表示十六进制
# 进制转换
print("{:b}".format(88))    # 输出88的2进制
"结果:1011000"
print("{:#b}".format(88))   # 输出88的2进制,且以0b开头
"结果:0b1011000"

print("{:o}".format(88))    # 输出88的8进制
"结果:130"
print("{:#o}".format(88))   # 输出88的8进制,且以0o开头
"结果:0o130"

print("{:d}".format(88))    # 输出88的10进制
"结果:130"
print("{:#d}".format(88))   # 输出88的10进制
"结果:88"

print("{:x}".format(88))    # 输出88的16进制
"结果:58"
print("{:#x}".format(88))    # 输出88的16进制,以0x开头
"结果:0x58"
(6)浮点数
序号格式说明功能
1"{:e/E}".format()e:表示科学计数法以科学计数法的形式输出浮点数
2"{:f}".format()f:表示浮点数以定点表示法的形式输出浮点数
3"{:g}".format()g:表示科学计数法和顶点表示法大数以科学计数法输出,小数以定点表示法输出
4"{:%}".format()%:表示百分比形式以百分比的形式输出浮点数
# 浮点数输出
print("{:e}".format(3.1415966))     # 以科学计数法的形式输出浮点数,默认精度是6
"结果:3.141597e+00"
print("{:E}".format(3.1415926))     # 同上
"结果:3.141593E+00"
print("{:f}".format(3.1415926))     # 以定点表示法的形式输出浮点数,默认精度是6
"结果:3.141593"
print("{:g}".format(31415926))      # 大数以科学计数法的形式输出
"结果:3.14159e+07"
print("{:g}".format(3.1415926))     # 小数以顶点表示法的形式输出
"结果:3.14159"
print("{:%}".format(3.1415926))     # 以定点表示法输出百分号形式
"结果:314.159260%"
f字符串
格式:f"{变量}" 
序号格式功能
1f"{变量}"快速引入变量
# f字符串
a = "肥龙"
print(f"我叫{a}")     # 可以快速引入变量
"结果:我叫肥龙"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值