zoukankan      html  css  js  c++  java
  • day 10 字符串的魔法

     1,Capitaliza 首字母大写

    test = "alex"
    v = test.capitalize()
    print (v)
    
    运行结果:Alex

    2,casefold

           lower

           所有变小写的两种魔法

    test = "Alex"
    # 字母变小写,方法1
    v = test.casefold()
    print(v)

    # 字母变小写,方法2 v= test.lower() print(v) 上面两种方法,相同点在于,都是变小写 上面两种方法的区别在于,casefold更牛逼,很多未知的对相应变小写 lower只能处理英文字符,在其他喝多国的语言中,有很多对应关系。


    3,center 设置宽度,并将内容居中

    跟上面两个魔法不一样
    def center(self,width,fillchar=None)
    对于参数celf 可以直接忽略掉,
    对于width,后面没有等号的时候,说明必须带(你来找我办事,一定要给钱)
    对于fillchar,后面有=号,说明默认的,如果不带,默认就是None

    test = "Alex" v = test.center(20) #一共20个位置,Alex 放中间 #空白位置填充 #只能填一个字符,可有可无 v = test.center(20,"*") # 一共20个位置,空白处填* a = test.center(30,"a") #一共20个位置,空白处填a print(v) print(a)


    4,count

        计算一下,字符串在上面出现了多少次

     def count(self, sub, start=None, end=None)

    test = "Alex"
    d = test.count("e")
    a = test.count("e",5,6)
    # 去字符串中寻找子序出现的次数
    # 5 从第几个开始往后数
    # 从5开始到第六个6结束,在这个范围内找
    print(a)

    5,欠下来

    encode  decoude
    忽略,以后会拿出来单独讲
    
    

    6,startswitch   endswith

        表示以什么结尾 表示以上面开头,对的True,错的false

    test = "Alex"
    # 表示以什么结尾
    v = test.endswith('x')
    print(v)
    
    test = "Alex"
    # # 表示以什么开头
    v = test.startswith("A")
    print(v)


    结果:
    True


    7,find

           找到位置,并获取位置(返回值为-1表示),(5,7表示在5和7之间找)

    test = "alexalex"
    # 从开始往后找,找到第一个之后,获取其位置
    # 大于 或 大于等于
    v = test.find("ex")
    print(v)
    v = test.find("ex",5,7)

    print(v)

    8,format 传值

          将一个字符串中的占位符,替换为指定的值

    有名字的:
    test
    = "i am {name},age {a}" print(test) v = test.format(name='alex',a=19) print(v)

    没名字的:
    根据顺序替换的 test
    = "i am {0},age {1}" print(test) v = test.format('alex',1) print(v)


    这种方式,格式化,传入的值只能是字典格式
    test = "i am {name},age {age}"
    v = test.format(name='alex',age='10')
    a = test.format_map({"name":'alex',"a":19})
    print(v)
    print(a)


    9,index 找不到,报错(功能同find,建议用find) 

    # index 找不到,报错,忽略
    test = "malexalex"
    v = test.index('a')
    print(v)

    10,isalum(判断字符串中,是否只是包含字母和数字,如果是True,不是false)

    字符串中,是否只是包含字母和数字
    都是字母和都是数字都可以
    test = "uas==f98"
    v = test.isalnum()
    print(v)

    # 字符串中是否包含字母和数字
    test = "123"
    v = test.isalnum()
    print(v)

    11,expandtabs 断句

    expandtabs 断句20,如果没有找到	
    s = "1234	561234567	7890" 
    v = s.expandtabs(6)

    print(v)

    结果:
    1234  561234567   7890

    说明:以为单位,每6个断句,遇到 占位,直至6个字符
    test = "username email password ying@q.com laiying 123 ying@q.com laiying 123 " v = test.expandtabs(20) print(v)

    结果:

    username email password
    ying@q.com laiying 123
    ying@q.com laiying 123

     12,isalpha(是否只包含字母,是的true,不是false)

    # 字母的时候true,有其他的false
    test = "2asdf"
    v = test.isalpha()
    print(v)

    13,判定一个字符串是否是数字

    isdecimal   虽然第三个牛逼,但是用的最多的是第一种
    isdigit
    isnumeric  这个更流弊

    判定当前输入的是否是数字
    test = "" 1 ②
    v1 = test.isdecimal()   十进制的小数
    v2 = test.isdigit()
    v3 = test.isnumeric()
    print(v1,v2,v3)
    False False True,第三种更流弊,用的最多是第一种

    14,isprintable

    是否存在不可显示的字符

    判定字符串中是否包含 制表符      换行键

    打印正常为True

    test = "sunjinquan	"
    v = test.isprintable()
    print(v)

    结果:
    False

    15,isspace

    判断是否全是空格

    test = " "
    v = test.isspace()
    print(v)

    结果:
    True

    16.title

    转换成标题

    转换成标题
    test = "Asba Arre Dd wo d charcaher"
    v = test.title()
    print(v)

    结果:
    Asba Arre Dd Wo D Charcaher

    17,istitle 判断是否为标题

    判断是否是标题,标题首字母都是大写的
    test = "Asba Arre Dd wo d charcaher"
    v = test.istitle()
    print(v)

    结果:
    False

    18,swapcase  把小写转换成大写

    # 把小写转换成大写
    test = "alex"
    v = test.swapcase()
    print(v)

    结果:
    ALEX

    19,isidentifier  

    判定是否为标识符

    # 字母 数字 下划线
    # 判定是否为标识符
    a = "1_23"
    v = a.isidentifier()
    print (v)

     

    20 

    ******************非常非常非常重要****************************

    # 将字符串中的每一个元素按照指定分隔符进行拼接

    将字符串以什么拆解
    test = "你是风儿我是沙"
    现在想输出 你 是 风 儿 我 是 沙

    test = "你是风儿我是沙"
    print(test)
    t = ' '
    v = t.join(test)
    print(v)

    结果:
    你 是 风 儿 我 是 沙


    test = "你是风儿我是沙"
    v= " ".join(test)
    print(v)
    也是一样的效果
    结果:
    你 是 风 儿 我 是 沙


    test = "你是风儿我是沙"
    print(test)
    v = "_".join(test)
    print(v)

    结果:

    你是风儿我是沙
    你_是_风_儿_我_是_沙

    21,填充符just

             20表示宽度

    # 右边填充
    # test = "alex"
    # v = test.ljust(20,"*")
    # print(v)
    # alex****************
    # 左边填充
    # test = "alex"
    # v = test.rjust(20,"*")
    # print(v)
    ****************alex
     
    # 中间填充
    # test = "alex"
    # v = test.center(20,"*")
    # print(v)
    # ********alex********

    用00000填充,一般用不着

    用00000填充,一般用不着test = "alex"v = test.zfill(20)print(v)0000000000000000alex

    22,islower判断是否为小写

             isupper判断是否为大写

             lower转换为小写

             upper 转换为大写

             网页验证码使用,大小写都行

    网页验证码时候使用,大小写都行
    test = "Alex"
    v1 = test.islower()
    判断是否小写
    v2 = test.lower()
    变成小写
    print(v1,v2)

    运行结果:
    False alex
    # 判断是否全部是大小写 和 转换为大小写
    # test = "Alex"
    # v1 = test.isupper()
    # v2 = test.upper()
    # print (v1,v2)
    

    False ALEX

    23,lstrip   rstrip    strip    移除空格的,还能移除换行

    第一种,默认移除空格和换行

    # 把空格处理掉,左边的,右边的,还有都处理掉,三种
    # 还能移除换行  /t   /n

    test = " alex "

    a = test.lstrip()

    a = test.rstrip()

    a = test.strip()

    print(a)

       第二种用法,把前面的指定内容v去掉

    test = "valex"

    a = test.lstrip("v")

    a = test.rstrip()

    a = test.strip()

    print(a)

    第三种用法,移除指定字符串(包含子序列中的任意字符也行)

    注意:从右向左找,找不到了就停止,找到继续哈哈哈,这个好难懂,老师讲的好

    test = "alexdex"

    a = test.rstrip("exd")

    print(a)

    24,maketrans 和 translate 一起用

    # 其实这里就是一个替换,上下对应替换

    test = "你是风儿我是沙沙是是是"

    m = str.maketrans("你是风儿我是沙","去你吗的风和杀")

    new_test = test.translate(m)

    print(new_test)

    25,partition,rpartiton,split,rsplit     用来做分割的

    # 分割用的
    # 从左看,他先看到了第一个S,然后分割,后面作为整体不管了,永远分三份
    test = "testdsafhdsjdafhjasieshjdhssdfgdsd"
    v = test.partition("s")
    print(v)

    运行结果:
    ('te', 's', 'tdsafhdsjdafhjasieshjdhssdfgdsd')
    从右看,先看到2,然后分割,也是三份
    test = "testdsafhdsjdafhjasieshjdhssdfgdsd"
    v = test.rpartition("s")
    print(v)
    # v = test.split("s")
    #看到每个s,都进行分割
    v =test.rsplit("s",2)
    print(v)

    后面可以加参数,数字,让他分割几次,但是有个弊端,s没有了
    # 后期会学习正则表达式,是这两个功能的合集

    26,splitlines 自动只根据换行分割

            也是分割,只能根据换行分割,参数True,包含换行符,false,不包含分行福

    test = "adafdaueionafdaufieo
    dakfdjaslfj
    daf
    "
    v = test.splitlines(False)
    print(v)

    27,startswith  endswith  

    判断是否以什么什么开头,以什么什么结尾

    # 以什么什么开头,以什么什么结尾test = "backend 1.1.1.1"v = test.startswith("1ba")c = test.endswith("1")print(v)print(c)

    结果:

    False

    True
     

    28,swapcase 大小写转换

    test = "alexddfa"
    v = test.swapcase()
    print(v)

    结果:
    ALEXDDFA

    29.replace 替换

    # 补充一个
    test = "alexalex"
    v = test.replace("ex","bbb",1)
    只替换第一个
    v = test.replace("ex","bbb")
    不加参数,全部替换print(v)

    总结:

    ##############有七个基本魔法需要记住#####################

    join 
    split
    find
    strip
    upper
    lower

    replace

    ##############有六个基本魔法需要记住#####################

    ######################灰魔法(其他数据类型都可以使用)##################################

    1,通过索引,下标,获取字符串中的某一个字符

    test = "alex"索引,下标,获取字符串中的某一个字符v = test[0]a = test[1]print(v,a)
    结果:
    a l

    2,切片

    
    
    #  索引范围
    test = "alex"v = test[0:2]   大于0 小于2
    print(v)

    结果:
    al
    a = test[0:-1]
    print(a)
    结果

    ale

    3,len获取字符串中由几个字符组成

    获取字符串中由几个字符组成
    test = "alex"
    a = "中国人"
    v = len(test)
    t = len(a)
    print(v)
    print(t)

    结果;
    4
    3

    li = [11,22,33,44,55,"asdf"]
    计算以逗号为分割
    c = len("asdfasfasfdasg")
    a = len(li)
    print(c)
    print(a)

    结果:
    14
    6
     
    test = "孙金权哈哈哈,窗前明月光"
    index = 0
    while index< len(test):
        v = test[index]
        print(v)
        index = index + 1
    print("完成")

    结果:












    完成



    4,for循环

           魔法里的for循环,for 变量名 in 字符串

            for循环可以用于索引和切片

    魔法里的for循环,for 变量名 in 字符串
    test = "孙金权哈哈哈,窗前明月光"
    for sjq in test:
        print(sjq)

    结果:











    #################################################################################

    # 记住这10个魔法,字符串就算OK了

    ##############################################################################

    深灰魔法

    # 字符串一旦创建,不可修改,如果修改,会创建一个新的字符串
    name = "zhengjianwen"
    print(id(name))
    age = "18"
    print(id(age))
    info = name + age
    print(info)
    print(id(info))


    结果:

    53083656
    53477888
    zhengjianwen18
    53506400

  • 相关阅读:
    Win10设置多时区时钟方法技巧
    Win10技巧:使用“照片”应用剪辑视频、添加特效
    kk录像机怎么剪辑视频 kk录像机视频剪辑教程
    360快剪辑怎么使用 360快剪辑软件使用方法介绍
    WPF HyperLink链接下划线隐藏
    ORACLE 如何产生一个随机数
    电脑的开始菜单点不了 用户帐户出现在桌面上
    无法加载DLL"***.dll":找不到指定的模块
    C#调用dll提示"试图加载格式不正确的程序"原因及解决方法
    C#中与C++中的 LPWSTR(wchar_t *) 对应的类型
  • 原文地址:https://www.cnblogs.com/xiaomai-rhce/p/10085501.html
Copyright © 2011-2022 走看看