6.字符串类型

目录

 类型转换

内置方法:

        1.优先掌握(索引取值,切片,len(),strip,split)

        2.需要掌握(lstrip,rstrip,loweer,upper,startswith,endswith,str.format,split,rsplit, join,replace, isdigit)

        3.了解(find,index,count,center,ljust,rjust,zfill,expandtabs,captalize,swapcase,title,is)


  •  类型转换

msg = str({"fz", 12})
print(msg, type(msg))    #{'fz', 12} <class 'str'>

  • 内置方法:

        1.优先掌握(索引取值,切片,len(),strip,split)

str1 = "hello python"

1.1按索引取值(正面取+反面取)取值:只能取(能按照索引取值,不能修改值)
    print(str1[1])    # e
    print(str1[-2])   # o
    print(str1[5])    # 空格也算字符


1.2切片:索引的拓展应用,从一个大的字符串中,拷贝出一个子字符串(顾头不顾尾,不长)
    用法1:获取字符串
        str2 = str1[0: 5]
        print(str2)                    # hello
        print(id(str1), id(str2))      # 2069299827632 2069299539184

    用法2:步长使用
        str3 = str1[0: 5: 2]
        print(str3)                    # hlo    

    用法3:反向步长
        str4 = str1[5: 0: -2]
        print(str4)                    #  le

    用法4:拷贝字符串:
        str5 = str1[:]                 # 等同于str5 = str1[0: 11]
        print(str5)                    # hello python

    用法5:把拷贝字符串反转:
        str6 = str1[:: -1]
        print(str6)                    # nohtyp olleh


1.3长度len()
        print(len(str1))               # 12



1.4成员运算in和not in
        print("hello" in str1)        # True
        print("sb" in str1)           # False


1.5移除字符串左右两侧的符号strip()
    用法1:默认移除空格
        a1 = "    hello    "
        print(a1.strip())           # 不会改变原值
    
    用法2:设置移除符号
        a2 = "***he**llo**"
        print(a2.strip("*"))        # he**llo,不能去除中间的

    用法3:同时设置多种移除符号
        a3 = "*=+hello*&%"
        print(a3.strip("*=+%&%"))   # hello

    应用:登陆去取空格:
        user_name = "zcy"
        user_password = "123456"
        in_name = input("请输入你的账号:").strip()
        in_pwd = input("请输入你的密码:").strip()
        if in_name == user_name and in_pwd == user_password:
            print("登陆成功")
        else:
            print("账号或密码错误")


1.6切分split():把一个字符串按照某种分隔符进行切分,得到一个列表
    用法1:默认分隔符为空格:
        b1 = "my name is zcy"
        print(b1.split())            # ['my', 'name', 'is', 'zcy']

    用法2:指定分隔符
        b2 = "my:name:is:zcy"
        print(b2.split(":"))         # ['my', 'name', 'is', 'zcy']

    用法3:指定某个分隔符
        info = "zcy: 18: male"
        print(info.split(":", 1))    # 第一个:后面为一个字符 ['zcy', ' 18: male']


1.7循环
    c1 = "hello:zcy:15"
    for i in c1:
        print(i)

        2.需要掌握(lstrip,rstrip,loweer,upper,startswith,endswith,str.format,split,rsplit, join,replace, isdigit)

2.1 左右移除:strip(),lstrip(),rstrip()
    f1 = "****xcy***"
    print(f1.lstrip("*"))   # xcy***  移除左边
    print(f1.rstrip("*"))   # ****xcy 移除右边


2.2 改大小写:、lower(),upper()
    g1 = "AKJLzxvbs"
    print(g1.lower())   # akjlzxvbs    改小写
    print(g1.upper())   # AKJLZXVBS    改大写


2.3、判断开头:startswith(),endswith()
    h1 = "zcy is 18"
    print(h1.startswith("zcy"))    # True
    print(h1.endswith("18"))       # True


2.4、str.format()的三种玩法
    用法1:位置一一对应
        j1 = "我的名字是 {} 我的年龄是{}".format("zcy", 18)
        print(j1)                                     # 我的名字是 zcy 我的年龄是18

    用法2:位置自选
        j2 = "我的名字是 {0}{0} 我的年龄是{1}".format("zcy", 18)
        print(j2)                                     # 我的名字是 zcyzcy 我的年龄是18

    用法3:以字典方式传值,打破位置限制key=value
        j3 = "我的名字是 {name} 我的年龄是{age}".format(name="zcy", age=15)
        print(j3)                                     # 我的名字是 zcy 我的年龄是15

    用法4:保留几位小数点四色五入
        print('{salary:.3f}'.format(salary=13.2415))  # 13.242


2.5、左右切片:split(),rsplit()
        m1 = "zcy:is:18"
        print(m1.split(":", 1))     # 默认左往右切    ['zcy', 'is:18']
        print(m1.rsplit(":", 1))    # 右往左切        ['zcy:is', '18']


2.6、join:把 全为字符串的列表 拼接 成字符串       、
     格式:"字符".join(列表)
     概念:从可迭代对象中取出多个字符串,然后按照指定的分隔符进行拼接,拼接的结果为字符串
        n1 = ["zcy", "is", "18"]
        print(":".join(n1))    # zcy:is:18
        n2 = "hello"
        print("%".join(n2))    # h%e%l%l%o


2.7、更改替换:replace()
    格式:replace('旧内容', '新内容')
        k1 = "you can you up,no can no bb"
        print(k1.replace("you", "YOU", 1))      # 不写1,默认全改   YOU can you up,no can no bb


2.8、判断字符串是否全为数字组成:isdigit()
    s1 = "123456"
    s2 = "12.36"
    print(s1.isdigit())    # True
    print(s2.isdigit())    # False

    应用:判断输入账号是否为纯数字
        user_name = 1840909117
        in_name = input("请输入你的学号").strip()
        if in_name.isdigit:
            in_name = int(in_name)
            if in_name == user_name:
                print("登陆成功")
        else:
            print("学号不存在,请重新输入")
        else:
            print("必须输入数字")

        3.了解(find,index,count,center,ljust,rjust,zfill,expandtabs,captalize,swapcase,title,is)

3.1、通过值找索引值:find(),rfind(),index(),rindex(),count()
    a1 = "hello hello zcy xiangs"
    find与index区别:
        找到返回索引值:
            print(a1.find("z"))       # 返回要查找字符串在字符串中的起始索引值
            print(a1.find("zcy"))     # 返回要查找字符串在字符串中的起始索引值
            print(a1.index("z"))
            print(a1.index("zcy"))
        找不到:
            print(a1.find("xxx"))   # 返回-1
            print(a1.index("xxx"))  # 程序异常"

    统计子字符串出现次数:
            print(a1.count("hello"))    # 2


3.2、center(),ljust(),rjust(),zfill():控制输出
        print("zcy".center(8, "*"))    # 占8位不够*补充,内容居中
        print("zcy".ljust(8, "*"))     # 占8位不够*补充,内容向左对齐
        print("zcy".rjust(8, "*"))     # 占8位不够*补充,内容向右对齐
        print("zcy".zfill(8))          # 占8位不够用0补充,内容向右对齐


3.3、expandtabs():控制制表符大小    
     \t为默认制表符
        b1 = "hello\tword"
        print(b1)                    # hello    word
        print(b1.expandtabs(2))      # hello  word    控制制表符为2个


3.4、captalize(),swapcase(),title():输出大小写控制,以符号为开始判断
        print("hello word".capitalize())    # 首字母变大
        print("hello WOrd".swapcase())      # 字母大小反转
        print("hello Wor d hi".title())     # 每个单词首字母大写


3.5、is数字系列
    在python3中
        num1=b'4'     # bytes
        num2=u'4'     # unicode,python3中无需加u就是unicode
        num3='四'     # 中文数字
        num4='Ⅳ'     # 罗马数字

    isdigt:bytes,unicode
        print(num1.isdigit())     # True
        print(num2.isdigit())     # True
        print(num3.isdigit())     # False
        print(num4.isdigit())     # False

    isdecimal:uncicode
    bytes类型无isdecimal方法
        print(num2.isdecimal()) #True
        print(num3.isdecimal()) #False
        print(num4.isdecimal()) #False

    isnumberic:unicode,中文数字,罗马数字
    bytes类型无isnumberic方法
        print(num2.isnumeric()) #True
        print(num3.isnumeric()) #True
        print(num4.isnumeric()) #True

    三者不能判断浮点数
        num5='4.3'
        print(num5.isdigit())
        print(num5.isdecimal())
        print(num5.isnumeric())

    总结:
         最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
         如果要判断中文数字或罗马数字,则需要用到isnumeric


3.6、is其他
    print("zcy".isdigit())          # 判断是否纯数字
    print("zCy".islower())          # 判断是否纯小写
    print("zCy".isupper())          # 判断是否纯大写
    print("Hello Word".istitle())   # 判断每个单词首字母是否为大写
    print("asd123".isalnum())       # 判断字符串是否为 字母 或 数字 或 字母和数字 组成
    print("asd".isalpha())          # 判断字符串是否为春字母组成
    print("   ".isspace())          # 字符串为空格组成为true
    print("print".isidentifier())   # 判断是否为内置关键字,是为true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值