• Python第四课(数据类型)


    Python第四课(数据类型)   >>>转到思维导图>>>转到我的博客

    整型(int)

    用途:记录QQ号、手机号、身份证号等

    定义:age = 18

    常用操作+内置的方法

        ​int只能转存数字的字符串,小数点都不行

        ​进制转换

    >>> print(int('1100',2))  # 二进制转十进制  0,1
    12
    >>> print(int('14',8))  # 八进制转十进制  0-7
    12
    >>> print(int('c',16))  # 十六进制转十进制 0-9 A-F
    12
    # int可以传第一个参数,表示的是第一个参数到底是什么进制  然后转成十进制
     
    >>> print(bin(12))  # 10进制转二进制
    0b1100  # 0b1100  0b表示后面的数字是二进制数
    >>> print(oct(12))  # 10进制转八进制
    0o14  # 0o14  0o表示后面的数字是八进制数
    >>> print(hex(12))  # 10进制转16进制
    0xc  # 0xc  0x表示后面的数字是十六进制数

    有序:但凡有索引的数据都是有序的

    不可变:值改变的情况下,id一定变

    浮点型(float)

    用途:记录薪资、身高、体重等

    定义:salary = 1.1 # salary = float(1.1)

    salary = 1.1 # salary = float(1.1)
     
    >>> res = float('1.11')
    >>> print(type(res))
    <class 'float'>

    有序:但凡有索引的数据都是有序的

    不可变:值改变的情况下,id一定变

    字符串(str)

    用途:描述性

    定义:' '," ",""" """

    常用操作+内置的方法

        1.按索引取值(正向取+反向取)

    >>> s = 'hello big baby~'
    >>> print(s[0])
    h

        2.切片(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串

    # 左边的固定就是头,右边固定就是位  没有说按数字来分头尾
    >>> s = 'hello big baby~'
    >>> print(s[0:5])
    hello
    >>> print(s[0:10:1])
    hello big  # 步长不写默认是1
    >>> print(s[0:10:2])
    hlobg  # 步长表示隔几个取一个
    了解负数取值
    >>> print(s[-1])
    ~
    >>> print(s[0:5:-2])  # 切片取值默认是从左往右的
     
    >>> print(s[5:0:-1])  # 切片取值默认是从左往右的
     olle
    >>> print(s[-1:-10:-1])
    ~ybab gib

        3.长度len:统计的是字符串中字符的个数

    >>> s1 = ' '
    >>> print(len(s1))
    1

        4.成员运算in和not in :判断一个子字符串是否存在于一个大的字符串中

    >>> print('egon' in 'egon is dsb and egon is sb')
    True
    >>> print('g' in 'egon is dsb and egon is sb')
    True
    >>> print('jason' not in 'egon is dsb and egon is sb')
    True

        5.去掉字符串左右两边的字符strip,不管中间的

    >>> username = input('>>>:').strip()
    >>>:   jason
    >>> if username == 'jason':
    ...     print('good job')
    ...
    good job
    # strip()默认去除字符串首尾的空格
    # 使用内置的方法统一采用 句点符(.)
    >>> name1 = 'jason'
    >>> name2 = '   jason   '.strip()
    >>> print(name1 == name2)
    True
    >>> name3 = '$$$$$eg$on$$$$'
    >>> print(name3.strip('$'))
    eg$on
    # 了解即可
    >>> name4 = '% ¥#jason&*)'
    >>> print(name4.strip('% ¥#)'))
    jason&*
    >>> rstrip() lstrip()
      File "<stdin>", line 1
        rstrip() lstrip()
                      ^
    SyntaxError: invalid syntax
    >>> name1 = 'jason'
    >>> name2 = '   jason   '.strip()
    >>> print(name1 == name2)
    True
    >>> name3 = '$$$$$eg$on$$$$'
    >>> print(name3.strip('$'))
    eg$on
    >>> name4 = '% ¥#jason&*)'
    >>> print(name4.strip('% ¥#)'))
    jason&*
    >>> name5 = '$$$$jason$$$$'
    >>> print(name5.lstrip('$'))  # left左边
    jason$$$$
    >>> print(name5.rstrip('$'))  # right右边
    $$$$jason

        6.切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值

    >>> data = 'jaso n|123| handsome'
    >>> print(data.split('|'))
    ['jaso n', '123', ' handsome']
    >>> username,password,info = data.split('|')
    >>> print(username,password,info)
    jaso n 123  handsome
    # 强调:split切分出来的数据类型是一个列表
    >>> print(data.split('o'))  # 切割的顺序其实从左往右的
    ['jas', ' n|123| hands', 'me']
    >>> print(data.split('o',1))  # 切割的顺序其实从左往右的
    ['jas', ' n|123| handsome']
    >>> print(data.rsplit('o',1))  # 切割的顺序其实从左往右的
    ['jaso n|123| hands', 'me']
    # 如果不指定那么split和rsplit效果是一样

        7.循环

    >>> for i in data:
    ...     print(i)
    ...

    重点掌握的内置方法

        1.strip,lstrip,rstrip

        2.lower,upper

    >>> s = 'JaS1oN'
    >>> res = s.lower()
    >>> print(res)
    jas1on
    >>> print(s)
    JaS1oN
    >>> print(s.upper())
    JAS1ON
    >>> print(s)
    JaS1oN
    # 调用字符串的方法并没有改变字符串本身

        3.startswith,endswith

    >>> s1 = 'egon is dsb'
    >>> print(s1.startswith('e'))  # 判断字符串是否以什么什么开头
    True
    >>> print(s1.endswith('n'))  # 判断字符串是否以什么什么结尾
    False

        4.format的三种玩法(python推荐使用format做格式化输出)

        第一种 按位置占位 跟%s原理一致

    >>> str1 = 'my name is {} my age is {}'.format(18,'jason',)
    >>> print(str1)
    my name is 18 my age is jason
    >>> str2 = 'my name is {} my age is {}'.format('jason',18)
    >>> print(str2)
    my name is jason my age is 18

        第二种 按索引占位

    >>> str1 = 'my {1} name is {0} my {0} age is {0}'.format('egon',18)
    >>> print(str1)
    my 18 name is egon my egon age is egon

        第三种 指名道姓占位(关键字传参)

    >>> str1 = 'my {name} name is {age} my {name} age is {name}'.format(name='jason',age=18)
    >>> print(str1)
    my jason name is 18 my jason age is jason

        5.split,rsplit

        6.join

    >>> data = 'jason|123|handsome'
    >>> res_list = data.split('|')
    >>> print(res_list)
    ['jason', '123', 'handsome']
    >>> res_str = '$'.join(res_list)  # 将容器类型中的多个元素通过指定字符拼接成一个字符串
    >>> print(res_str)
    jason$123$handsome
    >>> l = ['1','a','b']
    >>> res = '|'.join(l)
    >>> print(res)
    1|a|b

        7.replace

    >>> str = 'egon is dsb and egon is sb he has a BENZ'
    >>> res = str.replace('egon','kevin',1)
    >>> print(res)
    kevin is dsb and egon is sb he has a BENZ
    >>> print(str)
    egon is dsb and egon is sb he has a BENZ

        8.isdigit # 判断字符串中包含的是否是纯数字

    >>> while True:
    ...     age = input('>>>:')
    ...     if age.isdigit():
    ...             age = int(age)
    ...             if age > 28:
    ...                     print('阿姨好')
    ...             else:
    ...                     print('加个微信')
    ...     else:
    ...             print('你TM能不能好好输')
    ...
    >>>:30
    阿姨好
    >>>:14
    加个微信
    >>>:aaa
    你TM能不能好好输

    需要了解的内置方法

        1.find,rfind,index,rindex,count

    >>> s = 'kevin is dsb o and kevin is sb'
    >>> print(s.find('dsb'))  # 返回的是d字符所在的索引值
    9
    >>> print(s.find('xxx'))  # 找不到的时候不报错返回的是-1
    -1
    >>> print(s.find('i',0,3))  # 还可以通过索引来限制查找范围
    -1
    >>> print(s.index('o'))  # 返回所传字符所在的索引值
    13
    >>> print(s.index('i',0,3))  # 返回所传字符所在的索引值
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: substring not found
    >>> print(s.count('n'))  # 统计字符出现的次数
    3

        2.center,ljust,rjust,zfill

    >>> s9 = 'jason'
    >>> print(s9.center(12,'*'))
    ***jason****
    >>> print(s9.ljust(40,'$'))
    jason$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    >>> print(s9.rjust(40,'$'))
    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$jason
    >>> print(s9.rjust(40,' '))
                                       jason
    >>> print(s9.zfill(40))
    00000000000000000000000000000000000jason

        3.expandtabs

    >>> s10 = 'a	bc'
    >>> print(s10.expandtabs(100))
    a                                                                                                   bc

        4.captalize,swapcase,title

    >>> s12 = 'hElLo WoRLD sH10'
    >>> print(s12.capitalize())  # Hello world 首字母大写
    Hello world sh10
    >>> print(s12.swapcase())  # 大小写互换
    HeLlO wOrld Sh10
    >>> print(s12.title())  # 每个单词的首字母大小
    Hello World Sh10

        5.is数字系列

    >>> num1=b'4' #bytes
    >>> num2=u'4' #unicode,python3中无需加u就是unicode
    >>> num3='壹' #中文数字
    >>> num4='Ⅳ' #罗马数字
    # ''.isnumeric(): unicode,中文数字,罗马数字    只要是表示数字都识别
    >>> print(num2.isnumeric())
    True
    >>> print(num3.isnumeric())
    True
    >>> print(num4.isnumeric())
    True
    # ''.isdecimal(): unicode   只识别普通的阿拉伯数字
    >>> print(num2.isdecimal())
    True
    >>> print(num3.isdecimal())
    False
    >>> print(num4.isdecimal())
    False
    # ''.isdigit() :bytes,unicode    通常情况下使用isdigit就已经满足需求了
    >>> print(num1.isdigit())
    True
    >>> print(num2.isdigit())
    True
    >>> print(num3.isdigit())
    False
    >>> print(num4.isdigit())
    False

    列表类型 

    用途:多个装备,多个爱好,多门课程等

    定义:[ ]内可以有多个任意类型的值,逗号分隔

    >>> l1=list({'name':'jason','password':'123'})
    >>> print(l1)
    ['name', 'password']
    # list内部原理就是for循环取值 然后一个个塞到列表中去

    优先掌握的操作

    #1、按索引存取值(正向存取+反向存取):即可存也可以取
    >>> l = [1,2,3,4]
    >>> print(l[0:4:1])
    [1, 2, 3, 4]
    >>> print(l[0::])
    [1, 2, 3, 4]
    >>> print(l[5::-1])
    [4, 3, 2, 1]
    >>> print(id(l))
    1931767893768
    >>> l[0] = 69
    >>> print(id(l))
    1931767893768
    >>> print(l)
    [69, 2, 3, 4]
    #2、切片(顾头不顾尾,步长)
    >>> l = [11,22,33,44,55]
    >>> l1 = [99,88,77,66]
    # 1.尾部添加一个66
    >>> l.append(66)  # 注意append值能将被添加的数据当作列表的一个元素
    >>> print(l)
    [11, 22, 33, 44, 55, 66]
    # 2.任意位置添加元素
    >>> l.insert(2,96)  # 通过索引在任意位置添加元素
    >>> print(l)  # 注意insert值能将被添加的数据当作列表的一个元素
    [11, 22, 96, 33, 44, 55, 66]
    # 3.添加容器类型数据
    >>> l.append(l1)
    >>> l.insert(-1,l1)
    >>> l.extend(l1)  # 内部原理for循环l1一个个追加到列表的尾部
    >>> l.extend([1,])
    >>> print(l)
    [11, 22, 96, 33, 44, 55, 66, [99, 88, 77, 66], [99, 88, 77, 66], 99, 88, 77, 66, 1]
    #3、长度
    >>> print(len(l))
    14
    #4、成员运算in和not in
    >>> print( 444 in l)
    False
    #5、往列表中添加元素(******)
    # append
    # insert
    # extend
    #6、删除
    >>> print(l)
    [11, 22, 96, 33, 44, 55, 66, [99, 88, 77, 66], [99, 88, 77, 66], 99, 88, 77, 66, 1]
    >>> del l[2]  # del适用于所有的删除操作
    >>> print(l)
    [11, 22, 33, 44, 55, 66, [99, 88, 77, 66], [99, 88, 77, 66], 99, 88, 77, 66, 1]
    >>> res1 = l.pop()  # 尾部弹出
    >>> res2 = l.pop()
    >>> res3 = l.pop()
    >>> print(res1,res2,res3)
    1 66 77
    >>> res1 = l.pop(0)  # 可以指定索引 按照索引弹出元素
    >>> print(res1)
    11
    >>> res = l.remove(33)  # 指定要删除的元素的值
    >>> print(l)
    [22, 44, 55, 66, [99, 88, 77, 66], [99, 88, 77, 66], 99, 88]
    >>> print(res)
    None
    #7、循环
    >>> for i in l:
    ...     print(i)
    ...
    22
    44
    55
    66
    [99, 88, 77, 66]
    [99, 88, 77, 66]
    99
    88
    

      END

  • 相关阅读:
    IO 输入输出流
    「做自己」​​​​​​​写出我心(八十)
    「关于爱情,关于婚姻」​​​​​​​写出我心(七十九)
    「如何冥想?」​​​​​​​写出我心(七十八)
    「对这个世界温柔一点」​​​​​​写出我心(七十七)
    「7tips-克服焦虑」​​​​​写出我心(七十六)
    「十步学习法」​​​​写出我心(七十五)
    「成功的人生是台阶式向上」​​​写出我心(七十四)
    「世界是自己的」​​写出我心(七十三)
    「​八点工作中的小建议」​写出我心(七十二)
  • 原文地址:https://www.cnblogs.com/renvip/p/11128314.html
Copyright © 2020-2023  润新知