字符串的格式化format和字符串相关函数
一 字符串的格式化format
1.1 顺序传参:
"""{}是占位符"""
strvar = "{}向{}开了一枪,饮蛋而亡".format("小张","小菲")
print(strvar)
1.2索引传参:
strvar = "{1}向{0}开了一枪,饮蛋而亡".format("小张","小菲")
print(strvar)
1.3关键字传参:
strvar = "{who1}从后面掏了{who2}一下,回头一记天马流星拳".format(who1="小王",who2="小方")
print(strvar)
1.4容器类型数据(列表或元组活着的字典)传参:
strvar = "{0[1]}亲了{1[0]}一下,鼻血直冒三万多尺".format(["小王","建康"],("荷叶","永捐"))
strvar = "{group2[1]}亲了{group1[1]}一下,鼻血直冒三万多尺".format(group1=["小王","建康"],group2 = ("荷叶","永捐"))
# group2[yj] 如果是字典在format格式化字符串的使用中,不能加上引号""
strvar = "{group2[yj]}亲了{group1[0]}一下,鼻血直冒三万多尺".format(group1=["小王","建康"],group2 = {"wz":"小王","yj":"永捐"})
print(strvar)
1.5 format的填充符号的使用( ^ > < )
""" ^ 原字符串居中 > 原字符串居右 < 原字符串居左 {who:*^10} who : 关键字传参 * : 要填充的符号 ^ : 原字符串居中 10 : 填充符号的个数 + 原字符串的个数 如果不写填充符号,默认填充空格; """ strvar = "{who:*^10}在{where:>>10},坐着{dosomething:!<10},感觉{feel:^10}".format(who="雅琪",where="电影院",dosomething="吃饭",feel="自己萌萌哒") print(strvar)
1.6 进制转换等特殊符号的使用( :d :f :s :, )
# :d 整型占位符 (必须是整型) strvar = "子豪,昨天晚上买了{:d}个风油精".format(100) # :3d 占三位 strvar = "子豪,昨天晚上买了{:^3d}个风油精".format(3) print(strvar) # :f 浮点型占位符 (必须是浮点型) 默认小数点保留六位 strvar = "盛林毕业了,一个月工资:{:f}".format(9.91234567) # :.2f 小数点保留两位 存在四舍五入 strvar = "盛林毕业了,一个月工资:{:.2f}".format(9.91934567) print(strvar) # :s 字符串占位符 (必须是字符串) strvar = "{:s}".format("欢庆真胖~") print(strvar) # :, 金钱占位符 strvar = "{:,}".format(12345678) print(strvar)
二 . 字符串相关函数
part1:
*capitalize 字符串首字母大写
strvat = 'how old sre you' res = strvar.capitalize() print(res)
# *title 每个单词的首字母大写
strvar = 'how are you' res = strvar.title() print(res)
# *upper 将所有字母变成大写
strvar = 'to be or NOT to be' res = strvar.upper() print(res)
# *lower 将所有字母变成小写
res = strvar.lower() print(res)
# *swapcase 大小写互换
res = strvar.swapcase() print(res)
# *len 计算字符串的长度
res = len(strvar) print(res)
# *count 统计字符串中某个元素的数量
"""count(字符,[start,end])""" strvar = "to be or NOT to be" res = strvar.count("b") res = strvar.count("b",4) res = strvar.count("b",4,8) print(res)
# *find 查找某个字符串第一次出现的索引位置 (推荐)
"""find(字符,[start,end]) 如果找不到对应字符,返回-1""" strvar = "oh father this is my favorate dog" res = strvar.find("this") res = strvar.find("is",15) res = strvar.find("is",15,16) # -1 print(res)
# *startswith 判断是否以某个字符或字符串为开头
"""startswith(字符,[start,end]) 成立返回True,反之返回False""" strvar = "oh father this is my favorate dog" res = strvar.startswith("oh") res = strvar.startswith("oh",3) res = strvar.startswith("father",3,9) print(res
# *endswith 判断是否以某个字符或字符串结尾
"""endswith(字符,[start,end]) 成立返回True,反之返回False""" strvar = "oh father this is my favorate dog" res = strvar.endswith("dog") res = strvar.endswith("dog",-4) res = strvar.endswith("dog",-4,-2) # d print(res)
part2:
# *isupper 判断字符串是否都是大写字母
strvar = 'TO BE' res = strvar.isupper() print(res)
# *islower 判断字符串是否都是小写字母
res = strvar.islower() print(res)
# *isdecimal 检测字符串是否以数字组成 必须是纯数字
strvar = "12345" res = strvar.isdecimal() print(res)
part3
# *split 按某字符将字符串分割成列表(默认字符是空格)
"""split("字符",切割次数) 从左至右""" strvar = "you can you up no can no bb" lst = strvar.split() strvar = "you@can@you@up" lst = strvar.split("@") # 从左至右切割 lst = strvar.split("@",1) # 从右至左切割 lst = strvar.rsplit("@",1) print(lst)
# *join 按某字符将列表拼接成字符串(容器类型都可
lst = ['you','can','you','up'] res = "@".join(lst) print(res)
# *center 填充字符串,原字符居中 (默认填充空格)
strvar = "***" res = strvar.center(10) # 默认填充空格 res = strvar.center(10,"#") # 可选择填充的符号 print(res)
# *strip 默认去掉首尾两边的空白符(空格\n \t \r ... )
strvar = " 刘德华 " print(strvar.strip()) #rstrip 去掉右边某个字符 print(strvar.rstrip()) #lstrip 去掉左边某个字符 print(strvar.lstrip())
# replace() 把字符串的旧字符换成新字符
""" 功能: 把字符串的旧字符换成新字符 格式: 字符串.replace('旧字符','新字符'[, 限制替换的次数]) 返回值: 替换之后的字符串 """ strvar = "可爱的小狼狗喜欢吃肉,有没有,有没有,还有没有" res = strvar.replace("有没有","真没有") # 替换一次 res = strvar.replace("有没有","真没有",1) print(res)