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”

 

posted @ 2019-03-08 23:49  听MM的话  阅读(120)  评论(0)    收藏  举报