• 字符串类型内置方法


    1. 作用

    描述性质的东西,如人的名字、单个爱好、地址、国家等

    2. 定义方式

    使用''、""、''''''、""""""包裹的的一串字符

    b'101': 二进制编码的字符串

    r' ': 原生字符串,也就是说' '这是普通的两个字符,并没有换行的意思

    s = 'sdfklsdjfk'
    
    s = b'sdkfljl' # 打印出来的bytes类型,二进制类型,010101010100110100  
                   # 有这种二进制的定义方式,其实一点用都没有
    print(s)
    
    # 
     换行
    s  = 'a
    a'  # 碰到斜杠了,计算机就清楚下一个字符和拼接在一起会有特殊的意义
    print(s)
    
    # 	 缩进4个空格
    s = 'a		a'
    print(s)
    
    # 
     回退上一个打印结果,覆盖上一个打印结果
    print('
    a',end='')
    print('\ra',end='')  # 加一个让后面的变得无意义
    
    s = 'a\na'
    print(s)     # a
    a
    s = r'
    a	
    a'  
    print(s)     # 
    a	
    a
    

    3. 字符串内置方法(只有字符串类型才能使用)

    1. 索引取值(只可取不可改变)

    s = 'nick handsome'
    print(s[1])
    

    2. 切片(顾头不顾尾,步长)

    s = 'nick handsome'
    print(s[4:0:1])     # 1表示从左到右
    print(s[-4::-1])    # -1表示从右到左  # sdnah kcin  # 不推荐掌握
    print(s[4:0:-1])    # -1表示从右到左   #  kci
    
    

    3. for循环

    s = 'nick handsome'
    for i in s:
    print(i)
    

    4. 去两端空白:strip()

    s1 = '      nick handsome         '
    print(s1.strip())  # 去两端的空白
    
    s2 = '***!!!!!nick handsome----***'
    print(s2.strip('-*!'))  # nick handsome
                            # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉
    print(s2.strip('nick')) # ***!!!!!nick handsome----***
    
    s2.strip('*-!')  # 首先判断字符串s的两端字符,为*,再去strip里找有没有*,有就去掉,再去判断字符串s的两端字符,!-,再从strip里面找,有去掉,没有停止去掉
    print(s2)
    

    5. 切割:split()

    s2 = '***!!!!!nick handsome----***'
    print(s2.split())  # 默认以空格切割字符串  
                       # ['***!!!!!nick', 'handsome----***']
    print(s2.split('!'))  # 以!切割 
                          # ['***', '', '', '', '', 'nick handsome----***']
    print(s2.split('!', 2)) # ['***', '', '!!!nick handsome----***']
    

    6. 成员运算 in 或 not in

    s2 = '***!!!!!nick handsome----***'
    print('*' in s2)  # True
    print('$' not in s2)  # True
    

    7. 长度:len

    s2 = 'nick handsome'
    print(len(s2))  # 求字符串的长度
    

    8. lstrip()

    s2 = '***!!!!!nick handsome----***'
    print(s2.lstrip('*'))
    

    9. rstrip()

    print(s2.split('*', 1))
    

    10. lower & upper

    s3 = 'aaabbJ'
    print(s3.lower())   # 小写
    print(s3.upper())   # 大写
    

    11. startswith & endswith

    s3 = 'aaabbJ'
    print(s3.startswith('b'))   # 以···开头
    print(s3.endswith('J'))     # 以···结尾
    

    12. join

    join(用的比较多)一般和split联用

    s3 = ' '
    print(s3.join(['234', '234', '234']))  # 以s3为间隔符,拼接列表里的每一个元素
    
    s = '辣条/薯片/汽水/泡面/火腿肠/枸杞/当归/鹿茸'
    s1 = s.split('/')
    print('*'.join(s1))
    
    lis = [1,2,'19']
    print(f"':'.join(lis): {':'.join(lis)}")  # 报错,数字不可和字符串拼接
    

    13. 替换:replace

    s2 = 'yongjiu handsome'
    print(s2.replace('yongjiu', 'gebilaowang'))
    

    14. isdigit(纯数字) / isalpha(纯字母)

    isdigit(): 如果字符串中只包含数字,则返回True,否则返回False。

    isalpha(): 如果字符串中只包含字母,则返回True,否则返回False。

    s2 = '12312'
    print(s2.isdigit())
    
    s3 = 'aaac1c'
    print(s3.isalpha())
    

    15. 了解

    # find|rfind|index|rindex|count
    s2 = '**23423***ni234234ck $$ hand223423some******'
    print(s2.find('$'))    # 从左找,找到第一个停止,找不到返回-1
    print(s2.rfind('$'))   # 从右找,找到就停止,找不到返回-1
    
    print(s2.index('$'))   # 找不到报错
    print(s2.rindex('$'))  # 找不到报错
    
    # center|ljust|rjust|zfill(默认用0填充)
    s2 = 'nick handsome'
    print(s2.center(50, '*')) # 居中
    print(s2.ljust(50, '*'))  # 居左
    print(s2.rjust(50, '*'))  # 居右
    print(s2.zfill(50))       # 填充0居右
    
    # expandtabs
    s2 = 'a	a'
    print(s2)
    print(s2.expandtabs(8))   # 针对	而言
    
    # captalize|swapcase|title  只针对英文
    s2 = 'harry Potter'
    
    print(s2.capitalize())  # 首字母大写,用在段落开始
    print(s2.swapcase())    # 大小写互换
    print(s2.title())       # 所有单词首字母大写
    
    # is系列
    

    4. 存一个值还是多个值

    一个值

    5. 有序or无序

    只要是有索引的,都是有序的,因此字符串是有序的。

    6. 可变or不可变(重点)

    可变:值变id不变,不可哈希
    不可变:值变id也变,可哈希

    # 不可变数据类型
    s2 = 'abc'
    print(id(s2))
    s2 += 'abc'
    print(id(s2))
    
  • 相关阅读:
    《Android进阶之光》--RxJava
    《Android进阶之光》--RxJava实现RxBus
    《Android进阶之光》--RxJava结合Retrofit访问网络
    《Java并发编程的艺术》--Java中的锁
    《深入探索Androdi热修复技术原理(阿里巴巴)》--读书笔记
    Smali语法
    《Android进阶之光》--网络编程与网络框架
    《Android进阶之光》--多线程编程
    《Android进阶之光》--View体系与自定义View
    《Android进阶之光》--Material Design
  • 原文地址:https://www.cnblogs.com/yushan1/p/11290961.html
Copyright © 2020-2023  润新知