python小白——进阶之路——day6天---字符串相关相关函数,格式化(format)
作者:互联网
# ### 字符串相关函数 (函数就是方法的意思,完成某个功能)
""" 语法: 字符串.函数 """
*capitalize 字符串首字母大写
*title 每个单词的首字母大写
*upper 将所有字母变成大写
*lower 将所有字母变成小写
*swapcase 大小写互换
*len 计算字符串的长度
*count 统计字符串中某个元素的数量
*find 查找某个字符串第一次出现的索引位置
*index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错
*startswith 判断是否以某个字符或字符串为开头
*endswith 判断是否以某个字符或字符串结尾
#isupper 判断字符串是否都是大写字母
#islower 判断字符串是否都是小写字母
#istitle 判断字符串是否每个单词都首字母大写
#isalnum 判断字符串是否是由数字、字母、汉字组成
*isalpha 判断字符串是否由字母或文字组成
*isdigit 检测字符串数是数字组成 接受二进制字节流
*isdecimal 检测字符串是否以数字组成 必须是纯数字
#isnumeric 检测字符串是否以数字组成 接受中文"四"
#isspace 判断字符串是否由空白符组成
*split 按某字符将字符串分割成列表(默认字符是空格)
*join 按某字符将列表拼接成字符串(容器类型都可)
#splitlines 按换行来进行切分(\n)
#zfill 填充字符串(默认填充0,原字符串右对齐)
#ljust 填充字符串,原字符居左 (默认填充空格)
#rjust 填充字符串,原字符居右 (默认填充空格)
*center 填充字符串,原字符居中 (默认填充空格)
*strip 默认去掉首尾两边的空白符
#rstrip 去掉右边某个字符
#lstrip 去掉左边某个字符
*replace()
功能: 把字符串的旧字符换成新字符
格式: 字符串.replace('旧字符','新字符'[, 限制替换的次数])
返回值: 替换之后的字符串
#maketrans translate 是一对
maketrans()
功能: 制作用于字符串替换的映射表
格式: 字符串.maketrans('查找字符','替换字符')两个字符必须长度相等
返回值: 字典
translate()
功能: 进行字符串替换操作
格式: 字符串.translate(maketrans返回的字典)
返回值: 替换之后的字符串
以下是具体方法:
# capitalize 字符串首字母大写
strvar = "this is my world"
res = strvar.capitalize()
print(res)
#title 每个单词的首字母大写 (非字母类的就可以让后面字符大写)
strvar= "this is 888my ###world"
res = strvar.title()
print(res)
#upper将所有字母变成大写
#lower 将所有的字母变成小写
strvar = "daddaFDS"
res = strvar.upper()
print(res)
res =strvar.lower()
print(res)
# swapcase 大小写互换
strvar = "qq eee AAAdF"
res = strvar.swapcase()
print(res)
# *len 计算字符串的长度 (所有容器类型数据都可以使用len)
strvar = "阿士大夫撒地方撒旦法师打发尽快哈手机看地方撒即可劳动防护"
res = len(strvar)
print(res)
# count 统计字符串中某个元素的数量
strvar = "阿士大大夫撒大地方撒旦法师打发尽快哈手机看地方撒即可劳动防护"
res =strvar.count("大")
print(res)
# find 查找某个字符串第一次出现的索引位置
'''
find("字符串",start,end) 从哪里找到哪里结束 高位end取不到
如果find没找到 , 返回-1
'''
strvar = "oh Father This Is mY Favorate girl"
res = strvar.find("F")
res = strvar.find("Father")
print(res)
# 如果有开始,没有结束,默认查找到最后
res = strvar.find("F",4)
print(res)
res = strvar.find("s",14,16) #-1
print(res)
# *index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错
# index index 和 find 用法一样,只不过如果找不到直接报错
# 推荐使用find ****
# res = strvar.index("!") #ValueError: substring not found
# *starts with 判断是否以某个字符或字符串为开头
'''endswith startswith("字符串",start,end) 高位end 取不到 '''
strvar = "oh Father This Is mY Favorate girl"
res = strvar.startswith("oh")
res = strvar.startswith("oh",3)
print(res)
#endswith 判断是否以某个字符或者字符串结尾
res = strvar.endswith("r1")
res = strvar.endswith("s",5,14)
res = strvar.endswith("r",-6,-1)
print(res)
# isalpha 判断字符串是否由字母或文字组成
strvar= "ddadasdsads84"
strvar= "ddadasdsads多少度"
print(res)
# isdigit 检测字符串数是数字组成 接受二进制字节流
strvar = "48489984"
res =strvar.isdigit()
print(res)
'''
二进制字节流:用来存储或传输数据用的一种数据
语法: b'字符串' b后面的字符串只能是ascii编码中的字符集
byte 字节 bytes 字节流
'a' 字符 "aaa" 字符串
如果是中文字符 ,需要后期学到的encode 和 decode
'''
strvar = b'12345'
print(strvar,type(strvar))
#strvar =b"防守打法" error
# print(strvar)
res = strvar.isdigit()
print(res)
# isdecimal 检测字符串是否以数字组成 必须是纯数字
strvar = "984848"
# strvar = b'12345' error
res = strvar.isdecimal()
print(res)
#split 按某字符将字符串分割成列表(默认字符是空格)
strvar = "you can you up no can no bb"
res = strvar.split()
print(res)
strvar ="you:can:you:up:no:can:no:bb"
res = strvar.split(":")
# 可以接受2个参数,第二个参数意味着分隔几次(# 可以接受2个参数 , 第二个参数意味着分隔几次(从左到右))
res = strvar.split(":",3)
# 可以反向分隔 rsplit (从右向左)
res =strvar.rsplit(":",2)
print(res)
# join 按某字符将列表拼接成字符串(容器类型都可以)
lst = ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
res = '+'.join(lst)
res = '|'.join(lst)
res = ' '.join(lst)
print(res)
#center 填充字符串 原字符居中(默认填充空格)
''' 原字符个数+要填充的字符一共10个 '''
strvar = "那天"
res = strvar.center(10,"!")#可以选择要填充的符号
res = strvar.center(10)#如果不写默认填充空格
# strip 默认去掉首尾两边的空白符 (空格 \n \t \r\n)
strvar= "\t 今天天气不错 \n "
print(strvar)
res = strvar.split()
print(res)
# *replace()
strvar = "可爱滴小狼狗喜欢吃肉,有没有,有没有,还有没有"
# replace("原字符串","要替换的字符串",[可选择替换几次])
res = strvar.replace("有没有","真没有")
print(res)
res = strvar.replace("有没有","真没有",1)
print(res)
#rstrip 去掉右边某个字符
#lstrip 去掉左边某个字符
# ### 字符串的格式化format
'''
语法: {} 来进行占位
(1)顺序传参
(2)索引传参
(3)关键字传参
(4)容器类型数据(列表或元组)传参
'''
# (1) 顺序传参
strvar = "{}给{}一个飞吻".format("A","B")
print(strvar)
# (2) 索引传参
strvar = "{1}向{0}开了一枪,饮弹而亡".format("A","B")
print(strvar)
# (3) 关键字传参
strvar = "{hjy}对{zyw}进行扫射,鸡飞狗跳,狗急跳墙".format(zyw="A",hjy="B")
print(strvar)
# (4)容器类型传参
strvar = "{0[1]}向{1[1]}发了一份情书和一张私人照片,鼻血直冒三万英尺".format(["A,"B","C"],("D","E"))
print(strvar)
# (2) 如果是字典 , 场景发生在format字符串格式化当中, 主要通过键取值时,不要加上引号
strvar = "{group1[1]}向{group2[sjn]}发了一份情书和一张私人照片,鼻血直冒三万英尺"
res = strvar.format(group1 = ["A","B","C"],group2 = {"sjn":"A","ch":"B"})
print(res)
# ### format 填充符号 与 格式化
# (5)format的填充符号的使用( ^ > < )
'''
^ > <
^ : 原字符居中
> : 原字符串居右
< : 原字符串居左
{who:*<10}
who: 关键字
* : 代表要填充的字符
< : 原字符串居左
10 : 原字符 + 要填充的字符串 一共10个
'''
# strvar = "{who:*^10}在长春长生{something:>>10},心情{feel:!<10}"
# res = strvar.format(who="潘伟成",something="扎一打疫苗",feel="爽歪歪")
# print(res)
print("<==>")
strvar = "{dic[who]:*^10}在长春长生{dic[something]:>>10},心情{dic[feel]:!<10}"
res = strvar.format(dic = {'who':"潘伟成",'something':"扎一打疫苗",'feel':"爽歪歪"})
print(res)
# (6)进制转换等特殊符号的使用( :d :f :s :, )
# :d 整型占位符
strvar = "A买了{:d}个兰博基尼"
res = strvar.format(10)
print(res)
# :3d
strvar = "A买了{:3d}个兰博基尼"
res = strvar.format(10)
print(res)
# :^3d
strvar = "A买了{:<3d}个兰博基尼"
strvar = "A买了{:>4d}个兰博基尼"
strvar = "A买了{:^4d}个兰博基尼"
res = strvar.format(10)
print(res)
# :f 浮点型占位符98.94 :.2f 小数点保留2位
strvar = "A体重是{:.2f}斤"
res = strvar.format(98.943333)
print(res)
# :s 字符串占位符
strvar = "{:s}"
res = strvar.format("好看的皮囊千篇一律,有趣的灵魂200多斤")
print(res)
# :, 金钱占位符
strvar = "{:,}"
res = strvar.format(1234567)
print(res)
标签:字符,进阶,format,python,res,print,字符串,strvar 来源: https://www.cnblogs.com/-sch-593057927/p/10804486.html