美文网首页ProMonkey Lab
Python基础之数据类型(一)

Python基础之数据类型(一)

作者: ProMonkey_LAIN | 来源:发表于2018-07-02 16:02 被阅读0次

    Python基本数据类型

    python系列文档都是基于python3

    • 数字
    • 字符串
    • 列表
    • 元组
    • 字典
    • 集合

    一、数字

    特性:

    1. 只能存放一个值
    2. 一经定义,不可更改
    3. 直接访问
    • 整型
      十进制转二进制
      bin(10)
      十进制转八进制
      oct(10)
      十进制转十六进制
      hex(10)
      • int函数
      int('10',base=10)  #base=10,表示将字符串转换为十进制
      int('0b1010',base=2)  #base=2,表示将字符串转换为二进制
      int('0o12',base=8)  #base=8,表示将字符串转换为八进制
      int('0xa',base=16)  #base=16,表示将字符串转换为十六进制
      
    • 布尔
    >>> bool(0)  #零表示False
    False
    >>> bool(1)    #非零数字自带的布尔值都是True
    True
    >>> bool("hello")    #非空的字符串布尔值都是True
    True
    
    • 浮点(float)
      浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。
    >>> a=123.3442
    >>> type(a)
    <class 'float'>
    
    • 复数
      Python支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。
    >>> 1.3 + 2.3j == 1.3 + 2.3j
    True
    
    二、字符串

    由单引号、双引号或者三引号引起来的内容为字符串。

    >>> name = 'LAIN'
    >>> type(name)
    <class 'str'>
    
    • 字符串操作
    msg = 'Hello World'
    print(msg.count('o'))  #统计元素出现的次数;
    print(msg.count('o',4,7))  #指定索引位范围,顾头不顾尾计算元素出现次数;
    print(msg.capitalize())  #将字符串第一个字母大写,其余全部小写;
    print(msg.casefold())  #将字符串所有字母小写;
    print(msg.lower())  #将字符串所有大写转换为小写
    print(msg.upper())  #将字符串所有小写转换为大写
    print(msg.center(20))  #将字符串居中,以20个字符为基准其余部分以空格填充,进行显示;
    print(msg.center(20,'#'))  #将字符串居中,以20个字符为基准其余部分以"#"填充,进行显示;
    print(msg.encode(encoding='utf-8',errors=''))  #定义字符串显示编码;
    print(msg.find('o'))  #查找字符串元素,找到了显示索引位,找不到显示-1;
    print(msg.index('o'))  #与find类似,找到了显示索引位,找不到直接报错;
    print('_'.join(['Hello','World']))  #字符串拼接,以'_'拼接两个字符串;
    print(msg.replace('Hello','Hi'))  #字符串拼接,替换指定字符;
    print(msg.split(' '))  #字符串拆分,默认以空格为关键字' ';
    print(msg.endswith('d'))  #判断字符串是否以'd'结尾,True或者False
    print(msg.expandtabs(tabsize=10))  #tab键以10个字符表示
    print('{} {}'.format('name','agr'))  #赋值给{}
    print('{0}{1}{1}'.format('name','agr'))  #赋值给{},必须按照位置一对一赋值
    print(msg.isalnum())  #判断是否是字母或数字
    print(msg.isalpha())  #判断是否是字母
    print(msg.isnumeric())  #判断是否是数字
    print(msg.isdecimal())  #判断是否是十进制
    print(msg.isdigit())  #判断是否是整型数字
    print(msg.isidentifier())  #判断字符串是否是字母开头
    print(msg.islower())  #判断字符串是否全是小写字母
    print(msg.isspace())  #判断是否是空格
    print(msg.istitle())  #判断是否是标题(只有首字母大写例:Helloworld)
    print(msg.ljust(20,'#'))  #字符串内容向左对齐,总共占用20个字符,其余字符以'#'表示
    print(msg.rjust(20,'#'))  #字符串内容向右对齐,总共占用20个字符,其余字符以'#'表示
    print(msg.lstrip())  #去掉左边的空格
    print(msg.rstrip())  #去掉右边的空格
    print(msg.strip())  #去掉左右两边的空格
    print(msg.zfill(20))  #右对齐,不够的位数用0填充,指定20个字符
    
    三、列表

    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。通常作为函数的返回类型;列表是由一组元素组成,元素可以是整数,字符串,元组,或者是列表;每个元素分配一个数字,来表示索引位,第一个元素索引位为0,第二个为1,以此类推;列表操作有索引,切片,加,乘,检查成员。

    • 列表操作
    number = [1,2,3,4,5,6,7,8]
    增加
    number.append(9)                                      #追加,在最后一个元素末尾追加整数'9'
    number.insert(2,88)                                   #插入,在第二个索引位插入整数'88'
    
    删除
    number.remove(5)                                      #删除值,删除元素'5';全量删除不需要知道元素所在的索引位
    del number[3]                                         #删除索引位为3的元素
    number.pop()                                          #默认删除最后一个,可以通过下标删除
    number.pop(3)                                         #删除下标为3的元素
    
    修改
    number[2] = 'hello'                                   #直接修改,索引位为2的元素
    
    查询
    print(number[2])                                      #查看索引位为2的元素
    print(number[0::2])                                   #列表切片,从第一个元素开始,到最后一个结束,步长为2(间隔一个元素)
    print(number[-3:])                                    #列表切片,取倒数三个元素
    print(number[:3])                                     #列表切片,取前三个元素
    number.index('wangxu')                                #取这个元素的下标,如果没有直接报错,如果有多个相同的元素只查找出第一个
    
    统计
    n2 = [3,2,67,88,23]
    count   print('count',number.count('3'))     #统计出现次数
    clear   number.clear                                  #清空列表
    extend  number.extend(n2)                             #合并列表
    reverse number.reverse()                              #反转
    sort    number.sort()                                 #通过ascii码表顺序排序
    copy    number.copy()                                 #拷贝列表
    
    • 列表copy
    #copy和赋值的区别,copy是拷贝一份副本,两个列表互不影响;赋值相互影响;
    list1 = ['xiaoming','xiaolan','lain','laodeng']
    list2 = list1.copy()
    list3 = list1
    list1.pop()
    
    print("List1:",list1,id(list1))
    print("List2:",list2,id(list2))
    print("List3:",list3,id(list3))
    ####
    List1: ['xiaoming', 'xiaolan', 'lain'] 57931976
    List2: ['xiaoming', 'xiaolan', 'lain', 'laodeng',] 57404872
    List3: ['xiaoming', 'xiaolan', 'lain'] 57931976
    ####
    
    四、元组

    元组就是上了枷锁的列表,元组是不可改变的,主要是用来读。元组的标志是逗号;

    • 元组操作
    tuple1 = (1,2,23,45,23,22,111,333,25,76,87,93)
    print(tuple1)   #查询,查询出元组内的元素
    print(tuple1.count(23)) #查询,统计出'23'出现的次数
    print(len(tuple1))  #查询,统计出元组里有多少元素
    print(max(tuple1))  #查询,统计出元组里最大的元素
    print(min(tuple1))  #查询,统计出元组里最小的元素
    print(tuple1[:2])   #元组切片,从头开始截取到索引位为2的元素,不包含索引位为2的元素;顾头不顾尾
    print(tuple1[2:5])
    print(tuple1[:])    #元组切片,从头开始取出所有元素
    print(tuple1[-2])   #元组切片,取出倒数第二个元素
    print(tuple1[::2])  #元组切片,步长2(间隔一个元素)
    del tuple1  #删除元组,不可查
    
    #元组本身是不可以删除和修改的,但是可以通过字符串拼接来实现
    tuple2 = ('xiaoli','haha','lain','laodeng','pangpang','wangwang')
    tuple2 = tuple2[:2] + ('xiaohong',) + tuple2[2:]    #元组添加,通过字符串拼接实现添加元素
    print(tuple2)
    tuple2 = tuple2[:2] + tuple2[3:]    #元组删除,通过字符串拼接删除元素
    print(tuple2)
    
    五、字典

    字典一种key-value的数据类型,类似于json串;将存储更复杂的信息,获取更简单;

    • key的定义规则:
      1.不可变,数字、字符串、字典、元组(定义符合(),与列表完全一致,唯一不同的是元组内元素不可变)
      2.key必须是唯一的,所以字典天生有去重功能
    • value的定义规则:
      1.任意数据类型
    • 字典的操作
    dic = {'name':'lain','arg':28}
    查询:
    print(dic['name'])
    print(dic.get('name'))    #get方法查询不存在的项不会报错
    
    添加:
    dic['gender'] = 'female'    #k:v 无序添加
    
    修改:
    dic['name'] = '11'  #key不可修改
    
    删除:
    del     #万能删除
    del dic['name'] #删除key
    
    • 自带函数方法
    dicl = dict.fromkeys()  #快速生成字典
    dic.copy()          #浅拷贝,只拷贝一层
    dic.get()           #值不存在不会报错
    dic.items()         #打印转换为列表形式
    dic.keys()          #取出字典中所有的key值
    dic.pop()           #pop删除,括号内写key,key不存在会报错
    dic.popitem()       #随机删除一对key.val
    dic.setdefault()    #添加字典
    dic.update()        #添加新字典,添加字典内容,修改字典内容
    dic.values()        #取出字典所有values值
    
    • 字典定义
    dic = dict()                            #空字典
    dic1 = dict({'name':'lain','age':18})
    print(dic1)
    dic2 = dict(name='lain',age=18)
    print(dic2)
    dic3 = dict((('name','lain'),('age','18')))
    print(dic3)
    
    六、集合

    集合是一种无序的,不重复的数据组合;集合在python中几乎起到的所有作用就是两个字:唯一

    • 创建集合
    #创建集合的两种方式,一种是直接把一堆元素用大括号{}括起来;另一种是用set()。
    set1 = {1, 2, 3, 4, 5, 6, 'one', 'two'}
    set2 = set([1, 2, 3, 4, 5, 6, 'one', 'two'])
    print(type(set1))
    print(type(set2))
    -------
    <class 'set'>
    <class 'set'>
    
    • 集合操作
    #可以便历方式访问
    set1 = {1, 2, 3, 4, 5, 6, 'one', 'two'}
    for i in set1:
        print(i, end=' ')
    --------
    1 2 3 4 5 6 two one
    
    #可以通过'in' 或者 'not in'来判断元素是否存在集合中
    1 in set1
    'one' not in set1
    
    add        #添加元素到集合
    update      #添加集合到集合
    
    pop       #随机删除
    remove    #指定删除,如果删除元素不存在,程序报错
    discard   #指定删除,如果删除元素不存在,报none
    
    clear       #清空
    symmetric_difference_update  #差集后,赋予新值;去除两个集合中相同的,留下彼此没有的;
    
    • 集合的模式
    - 交集:intersection    print(s1&s2)
    - 并集:union       print(s1|s2)
    - 差集:difference  print(s1-s2)        
    - 子集:issubset    print(s1<=s2)
    - 父集:issuperset  print(s1>=s2)
    - 对称差集:symmetric_difference    print(s1^s2)    #去掉两个集合里重复的
    
    • 不可变的集合
    #有时候需要集合的数据具有稳定性,不可增加或删除;就需要用frozenset()函数冰冻集合;
    set3 = frozenset([1, 2, 3, 4, 5, 6, 'three', 'four'])
    

    相关文章

      网友评论

        本文标题:Python基础之数据类型(一)

        本文链接:https://www.haomeiwen.com/subject/gwvkuftx.html