python全栈 S3--10day--python字符串的魔法(9-10还有11day中的课程)
一、字符串中的魔法

1、将首字母大写“capitalize”
a="jay" v=a.capitalize() print(v)
2、将字符串中所有的值全都转为小写case fold lower
a="jAy" v=a.casefold()这个更牛逼,可以将咱们不知道的也转化为小写 print(v) w=a.lower()相对于上面的不牛逼,只能转化咱们知道的一些英文,比如@有可能上面的就可以转化为小写,而这个就不可以 print(w)
3、设置字符串的宽度,并且将字符串剧中,也可以把空白处填充 center ljust rjust
jay="王宏伟" james=jay.center(15,"_")这个表示加上“王宏伟”一共15个字符位置,并且把“王宏伟”居中显示,后面的“_”,表示空白部分使用_来进行填充,不写的话就是空白显示,这位置只能是一个字符,不能是多个例如“jay\99\44” print(james)
# 在左边进行操作
test="jajjjf"
v=test.ljust(20,"%")
print (v)
# 在右边进行操作
test="jajjjf"
v=test.rjust(20,"%")
print (v)
4、去寻找子序列在字符串中出现的次数。也可以设置出起始位置和结束位置 count
a="jayajjayjayayajayajajaayyjayayjaylajayy" v=a.count("jay",8,20)8代表起始位置,20代表结束位置。起始位置和结束位置如果不写的话,就寻找全部的 print(v)
5、以什么什么开头,或者以什么什么结尾,这个也可以规定起始位置与结束位置 startswith endswith
jay="james" jake=jay.startswith("a")表示以什么什么开头,记住一点,字符串的位置是以0开始的而不是以1开始的 jake=jay.startswith("j",0,4) print (jake) jake=jay.endswith("s")表示以什么什么结尾 jake=jay.endswith("s",2,5) print(jake)
6、搜索子序列在字符串中的位置,返回索引值,从左到右依次寻找,找到了就不再找了,第一个字符是以0开始的,依次往下走 find
jay="jamesjamesjaymajewsjayjames" jake=jay.find("es")这个返回的值是3 print(jake)
还可以设定起始位置和结束位置,记住一点是以0开始,到最后的时候是以区间形式展示,如果最后一个为7,设定结束位置也为7那肯定是找不到结果的,还有就是如果找不到数据的话,就会返回值1
jay="jamesjamesjaymajewsjayjames" jake=jay.find("es",7,8) print(jake)
7、format--将字符串中的某一元素替换成一个准确的值,也可以使用索引来替换,有两种方法,但是第一是常用的 format format_map
jay="{a} name , {s} age" jake=jay.format(a="james",s=19) print (jake) jay="{0} name , {1} age" jake=jay.format({"james"},{19}) print(jake)
第一个是将,字符串中的某一个值对应的替换成某个具体值
第二个是通过索引的方式将字符串中的某一个值替换成具体的值
jay="{a} name , {s} age" jake=jay.format_map({"a":"james","s":19}) print(jake)
这个只能将字符串中的某一个具体元素替换成某一个具体的值,且替换的时候需要使用字典的方式进行传达
8、index也是去将某一个子序列去字符串中寻找,并且返回索引,与find的应用方法一致,但是唯一的区别是,如果查找的值不存在,将会报错所以这个方法不经常使用,也可以规定起始位置与结束位置
jay="jayjayjeamasjamesjames" jake=jay.index("mas",1,12) print(jake)
9、isalnum,这个是查看字符串中是否只是数字或者字母,返回值为布尔值false、true,如果是将返回true,不是将返回false
jay="jajjaj323434" jake=jay.isalnum() print(jake) jay="jajjaj323434=#" james=jay.isalnum() print(james)
10、expandtabs,代表自动补齐空格,补充知识(\t代表制表符,\n代表换行)
jay="passwd\tusr\t邮箱\n12333\troot\t.com\n12333\troot\t.com\n12333\troot\t.com\n" jake=jay.expandtabs() 括号中可以设置字节的总数,如果没有设置默认为8个字节位置 print(jake)

11、isidentifier的使用
# isidentifier检查字符串中是否只包括数字、字母、数字、下划线,是返回true,否则返回值为false jay="汉字jay" jake=jay.isidentifier() print(jake)
12、isprintable的使用方法
# isprintable表示打印字符串中的内容,返回值为布尔值,但是不可显示的内容不可以打印,比如\t \n jay="asdfghkl" jake=jay.isprintable() print(jake) test="adkjsja\tjakjaj\n" v=test.isprintable() print(v)
13、isspace的使用方法
# isspace表示字符串中的内容是否全部为空格,返回值为布尔值,如果字符串为空也会返回false test1="jajakjj" v1=test1.isspace() print (v1) test2="jakjfj ajkjj jakj" v2=test2.isspace() print(v2) test3=" " v3=test3.isspace() print(v3)
14、当前输入的字符串是否为数字,三个方法,返回值为布尔值,以后写文章的时候可以通过此方法来获取编号的等级
# 牛逼 jay="②二" jake=jay.isnumeric() print(jake) # 较牛逼 jay="②" jake=jay.isdigit() print(jake) # 最不牛逼 jay="2" jake=jay.isdecimal() print(jake)
15、title和istitle的使用方法
# istitle判断字符串中的所有单词的首字母是否为大写,返回值为布尔值 jay="jajjf ajkadjk jajj jkaj" jake=jay.istitle() print (jake) # title可以将字符串中所有的单词的首字母转化为大写 jay="jajjf ajkadjk jajj jkaj" jake=jay.title() print (jake) #通过title将字符串中的所有单词转化为大写之后再进行判断 james=jake.istitle() print(james)
16、join的使用方法
# *******join******将字符串中的某一个元素按照指定的分隔符进行拼接,内部其实是进行了for循环,两个方法效果一样 jay="jayjamesjakenellysmile" v2="==" v3=v2.join(jay) print (v3)
jay="jayjamesjakenellysmile"
v3="==".join(jay)
print (v3)
17、检查字符串是否为大写或者小写,将字符串转化为大写或者小写
# 检查是否为小写 jay="JJKjja" v=jay.islower() print (v) # 将字符串转化为小写 jay="JJKjja" v=jay.lower() print (v) # 检查是否为大写 jay="aaajja" v=jay.isupper() print (v) # 将字符串转化为大写 jay="aaajja" v=jay.upper() print (v)
18、lstrip rstrip strip的使用方法,去除空白以及\t\n,和指定子序列
# 去除所有空白 james=" jakjf " v=james.strip() print (v) # 去除左边空白 james=" jakjf " v=james.lstrip() print (v) #去除右边空白 james=" jakjf " v=james.rstrip() print (v) #还可以去除\t \n james=" \tjakjf\n " v=james.strip() print (v) #还可以去除指定的子序列,优先匹配最多 james="jakjkk" v=james.lstrip("ja") print (v)
19、partition split ,正则表达式是这两个的总和,自己去设置用不用保留匹配的参数
# 找到第一个子序列的时候就进行分割,永远分割成三份 jay="asfdjdkjkjkgjajflakj" jake=jay.partition("d") print(jake) # 从右开始找到第一个子序列的时候就进行分割,永远分割成三份 jay="asfdjdkjkjkgjajflakj" jake=jay.rpartition("d") print(jake) # 全部分割完成,但是匹配的参数拿不到,这里也就是"d", jay="asfdjdkjkjkgjajflakj" jake=jay.split("d") print(jake) # 全部分割完成,也可以传参数进行分割,2就代表找两次进行分割 jay="asfdjdkjkjkgjajflakj" jake=jay.split("d",2) print(jake) # 从右开始进行分割,2就代表找两次进行分割 jay="asfdjdkjkjkgjajflakj" jake=jay.split("d",2) print(jake)
20、splitlines,通过换行符进行分割
# 通过换行符进行分割 jay="jakdjk\njljsj\ndjfiej\n" v=jay.splitlines() print (v)
21、swapcase 可以将大写转化为小写,小写转化为大写
#可以将大写转化为小写,小写转化为大写 jay="asdASD" v=jay.swapcase() print (v)
22、replace
# 将字符串中的“jake”替换成“123456” jay="jakejakejakejakjdjfjake" v=jay.replace("jake","123456") print(v) # 将字符串中的“jake”替换成“123456”,且2代表只替换前两个 jay="jakejakejakejakjdjfjake" v=jay.replace("jake","123456",2) print(v)
############################7个基本魔法必须记住#################################################################
即:join split find strip upper lower replace
############################5个灰魔法#################################################################
灰魔法有四个:for循环、索引、切片、len
1、for循环
jay="我们都是中国人" for jake in jay: print(jake)
for循环也支持break、continue 的使用
# 跳出当前循环 jay="adfgggjkljj" for jake in jay: continue print (jake) # 结束循环 jay="adfgggjkljj" for jake in jay: print (jake) break
2、索引
jay="我们都是中国人" v=jay[0] print (v)
3、切片
jay="我们都是中国人" v=jay[0:3] print (v) jay="我们都是中国人" v=jay[0:-1] print (v)
4、len代表字符串中有多少个字符,但是在python中一个汉字代表三个字节
jay="我们都是中国人" v=len(jay) print(v)
5、range 创建联系的数字,如果后面添加步长的话,也可以创建不连续的数字
# 创建连续的数字,并通过for循环来看出效果 test=range(10) for jay in test: print(jay) #设置步长来创建不连续的数字,并通过for循环来看出效果 test=range(0,10,2) for jay in test: print (jay)
#####################1个深灰魔法#########################################################
1、字符串一旦被创建就不能被修改,如果想要出新赋值,就必须创建再进行赋值

练习题:将字符串以及对应的索引输出
# 将文字对应的索引打印出来 test="我们都是中国人" v=len(test) jay=range(v) for jake in jay: print (jake,test[jake])
简单输入为:
test="我们都是中国人"
for jake in range(len(test)):
print (jake,test[jake])
还有一个表达形式
jay=input(">>>")
for jake in range(len(jay)):
print(jake,jay[jake])
补充:
1、最长公共子序列,即“asdfg”和“asder”,他们的公共子序列为“asd”
浙公网安备 33010602011771号