数字类型和字符串类型内置方法

再说内置方法之前,先来介绍一下 什么是有序or无序,什么是可变or不可变

有序:有索引

无序:无索引

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

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

01 数字类型内置方法

整形

  1. 作用 (具体参考数据类型基础)

    描述年龄,id

  2. 定义方式(具体参考数据类型基础)

    可以使用int()方法将纯数字的字符串转为十进制的整型

    age = 19  # age = int(10)
    print(type(age))
    #<class 'int'>
    x = int('111')
    print(type(x))
    #<class 'int'>
    x = int('11.1')  # 报错
    print(x)
    
  3. 内置方法

    没有内置方法,只有算术运算+-*/和比较运算><>=<=

  4. 存一个值还是多个值

    一个值 这不是废话吗?一个变量名对应一个变量值

  5. 有序or无序

    压根没有这么一说

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

    数字类型是不可变

浮点型

  1. 作用(具体参考数据类型基础)

    用途:薪资、身高、体重

  2. 定义方式(具体参考数据类型基础)

    可以使用float()方法将纯数字的字符串转为浮点型数字。

    age = 3.1  # age = float(3.1)
    print(type(age))
    #<class 'float'>
    x = float('111')
    print(x)
    print(type(x))
    111.0
    #<class 'float'>
    x = float('11.1')  # 报错
    print(type(x))
    #<class 'float'>
    
  3. 内置方法

    _算术运算+比较运算

  4. 存一个值还是多个值

    一个值

  5. 有序or无序

    无有序or无序一说

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

    不可变数据类型

02 字符串类型内置方法

  1. 作用(具体参考数据类型基础)

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

  2. 定义方式(具体参考数据类型基础)

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

    • u'unicode': unicode编码的字符串
    • b'101': 二进制编码的字符串
    • r'\n': 原生字符串,也就是说'\n'这是普通的两个字符,并没有换行的意思
    name = 'nick'  # name =str('nick')
    s1 = str(1.1)
    s2 = str([1, 2, 3])
    
    print(f's1:{s1}, type:{type(s1)}')
    print(f's2:{s2}, type:{type(s2)}')
    #s1:1.1, type:<class 'str'>
    #s2:[1, 2, 3], type:<class 'str'>
    

    看到这里的大兄弟有福利了,这来讲一个打印二进制类型

    s = b'sdkfljl' # 打印出来的bytes类型,二进制类型,010101010100110100  # 有这种二进制的定义方式,其实一点用都没有
    print(s)
    

    在来讲几个转义字符

    \n #换行
    s  = 'a\na'  # 碰到斜杠了,计算机就清楚下一个字符和\拼接在一起会有特殊的意义
    print(s)
    
    \t 缩进4个空格
    s = 'a\t\ta'
    print(s)
    
    \r 回退上一个打印结果,覆盖上一个打印结果
    print('\\ra',end='')  # 加一个\让后面的\变得无意义
    print('\\ra',end='')
    
    
    s = 'a\\na'
    print(s)
    s = r'\ra\t\na'  # raw 去掉转义字符,等于使\没有意义
    print(s)
    
    

    在来讲一个内置包 os ,用来拼接路径

    path = r'D:'
    print(path)
    import os
    path = os.path.join(path,'test.txt')
    
  3. 字符串内置方法(只有字符串类型才能使用)

    优先掌握

    1. 索引取值
    print(s[1])
    
    2. 切片
    print(s[4:0:1])  # 1表示从左到右
    
    print(s[-4::-1])  # -1表示从右到左  # 不推荐掌握
    
    print(s[4:0:-1])  # -1表示从右到左
    
    s = 'Thousand_Mesh handsome'
    
    3.for循环
    for i in s:
        print(i)
    
    4.strip()
    s1 = '      Thousand_Mesh handsome         '
    print(s1.strip())  # 去两端的空白
    
    s2 = '***!!!!!Thousand_Mesh handsome----***'
    print(s2.strip('-*!'))  # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉
    print(s2.strip('nick'))  # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉
    
    s2.strip('*-!')  # 首先判断字符串s的两端字符,为*,再去strip里找有没有*,有就去掉,再去判断字符串s的两端字符,!-,再从strip里面找,有去掉,没有停止去掉
    
    print(s2)
    
    print('*' * 50)
    s2 = '***!!!!!Thousand_Mesh handsome----***'
    
    5.split() 切割
    print(s2.split())  # 默认以空格切割字符串
    print(s2.split('!'))  # 以!切割
    print(s2.split('!', 2))
    
    s2 = '***!!!!!Thousand_Mesh handsome----***'
    
    6.in 或 not in
    print('*' in s2)  # True
    print('$' not in s2)  # True
    
    7.长度len
    s2 = 'Thousand_Mesh handsome'
    print(len(s2))  # 求字符串的长度
    

    需要掌握

    1.lstrip() 和 rstrip()
    s2 = '***!!!!!Thousand_Mesh handsome----***'
    print(s2.lstrip('*'))
    print(s2.rstrip('*'))
    
    2.rsplit()
    print(s2.split('*', 1))
    print(s2.rsplit('*', 1))
    
    3.lower&upper
    s3 = 'aaabbJ'
    print(s3.lower())
    print(s3.upper())
    
    4.startswith&endswith
    s3 = 'aaabbJ'
    print(s3.startswith('b'))
    print(s3.endswith('J'))
    
    5.join(用的比较多)一般和split联用
    s3 = ' '
    print(s3.join(['234', '234', '234']))  # 以s3为间隔符,拼接列表里的每一个元素
    
    s = '辣条/薯片/汽水/泡面/火腿肠/枸杞/当归/鹿茸'
    
    s1 = s.split('/')
    print('*'.join(s1))
    
    6.replace
    s2 = 'Thousand_Mesh handsome'
    
    print(s2.replace('Thousand_Mesh', 'tt'))
    
    7.isdigit(纯数字)/isalpha(纯字母)
    s2 = '12312'
    print(s2.isdigit())
    
    s3 = 'aaac1c'
    print(s3.isalpha())
    
    username_db ='nick'
    
    pwd_db = '123'
    
    inp_username = input('username:')
    
    inp_pwd = input('pwd:')
    
    if inp_username.isalpha():
    
    pass
    
    if inp_pwd.isdigit():
    
    pass
    

    了解 (能就能,不能就不能)

    1.find|rfind|index|rindex|count
    s2 = '**23423***ni234234ck $$ hand223423some******'
         01234567891011
    print(s2.find('$'))  # 从左找,找到第一个停止,找不到返回-1
    print(s2.rfind('$'))  # 从右找,找到就停止,找不到返回-1
    print(s2.index('$'))  # 找不到报错
    print(s2.rindex('$'))  # 找不到报错
    
    2.center|ljust|rjust|zfill
    s2 = 'nick handsome'
    print(s2.center(50, '*'))  # 居中
    print(s2.ljust(50, '*'))  # 居左
    print(s2.rjust(50, '*'))  # 居右
    print(s2.zfill(50))  # 填充0居右
    
    3.expandtabs
    s2 = 'a\ta'
    print(s2)
    print(s2.expandtabs(8))  # 针对\t而言
    
    4.captalize|swapcase|title 只针对英文
    s2 = 'harry Potter'
    print(s2.capitalize())  # 首字母(一句话的开头)大写,其他全小写,用在段落开始
    print(s2.swapcase())  # 大小写互换
    print(s2.title())  # 所有单词首字母大写
    
    5.is系列(有兴趣的自己了解)
  4. 存一个值还是多个值

    一个值

  5. 有序or无序

    有序

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

    不可变

posted @ 2019-08-02 20:55  Thousand_Mesh  阅读(118)  评论(0编辑  收藏  举报