• python数据类型


    1. number

    1.1 整型(int)

    • 作用:年纪,等级,身份证号,qq号等整型数字相关
    • 定义:
      age=10 #本质age=int(10)

    1.2 浮点型

    • 作用:薪资,身高,体重,体质参数等浮点数相关
      salary=3000.3 #本质salary=float(3000.3)

    2. 字符串 str

    • 作用:对事物的具体描述信息
    • 定义:在单/双/三引号中由一串字符组成
    • 相关操作
    例:a='I love you'
    (1)按索引取值(从0开始)   print(a[2])  #l
    
    (2)切片(顾头不顾尾,步长,最后一位是-1) 
    print(a[2:4])  # lo
    print(a[0:-1]) #I love yo
    print(a[0:-1:2]) #Ilv o
    print(a[::-2]) # uyeo 
    
    (3)长度 print(len(a) #10
    
    (4)成员运算in,not in 返回true或者false
    
    (5)移除空白strip
    name='****A*e*gon****'
    print(stript.name('*') #A*e*gon
    print(lstript.name('*') 去除左边* #A*e*gon****
    print(rstrip.name('*') 去除右边*  #****A*e*gon
    
    (6)切分split(切分符号,个数)
    msg='egon:18:male:180:160'
    l=msg.split(':')
    print(l)
    #['egon', '18', 'male', '180', '160']
    从右边切分
    print(msg.rsplit(':',1))
    #['egon:18:male:180', '160']
    
    (7) 大小写 upper,lower
    
    (8)startswith,endswith 以什么开头/结尾,返回true或者false
    print('I love you'.startswith('I')) # true
    
    (9)format 三种用法
    print('my name is {name} my age is {age}'.format(age=18,name='egon')) # 可以打破位置的限制,但仍能指名道姓地为指定的参数传值
    print('my name is {} my age is {}'.format('egon',18))
    print('my name is {0}{0} my age is {1} {1} {1} {1}'.format('egon',18))
    
    (10)join 拼接
    用指定符号拼接
    info='qqc:18:male'
    print('-',join(info) 
    #q-q-c-:-1-8-:-m-a-l-e
    将元素全为字符串的列表拼成一个大的字符串
    info= ['ggh','jh','drt','kit']
    print('|'.join(info))
    #ggh|jh|drt|kit
    
    (11) replace 替换
    a='I love you I'
    print(a.replace('I','gg') 
    #gg love you gg
    可指定替换个数(默认全部替换)
    print(a.replace('I','gg',1) 
    gg love you I
    
    (12)isdigit 判断是否为整数
    print('88'.isdigit()) #true
    print('hh'.isalpha()) 是否是字符串
    #true
    
    • 总结
    只能存一个值,有序,不可变类型
    name='qqc'
    b=name.replace('q','w')
    print(id(name)) #5145600
    print(id(b)) #5145664
    #id已变为不可变类型
    

    3.列表 list

    • 定义:在[]内可以有多个任意类型的值,逗号分隔
    • 相关操作
      索引,切片,成员运算,长度与字符串用法相同
    • 追加
    #末尾添加 append
    names=['qqc','wx','ggx','fln']
    print(names.append('gg') 
    
    #指定位置添加 insert
    names=['qqc','wx','ggx','fln']
    names.insert(1,'gg')
    print(names)
    #['qqc', 'gg', 'wx', 'ggx', 'fln']
    
    添加多个值 extend
    names.extend([7,2,3])
    
    • 删除
    # del 指定索引删除  
    names=['qqc','wx','ggx','fln']
    del names[2]
    print(names)
    # ['qqc', 'wx', 'fln']
    
    # remove  删除指定的元素,没有返回值  
    names=['qqc','wx','ggx','fln']
    names.remove('wx')
    print(names)
    
    # pop() 指定索引删除,有返回值
    names=['qqc','wx','ggx','fln']
    res=names.pop(2)
    print(res)   #ggx
    print(names) # ['qqc', 'wx', 'fln']
    
    • 通过值取索引 index
    names=['qqc','wx','ggx','fln']
    print(names.index('qqc')) # 0
    
    • 排序
      字符串比较(小写>大写,a至z变小,从第一位开始依次比较后面的值)
    sort 从小到大排序
    name=[1,10,-3,11]
    name.sort()                 
    print(name)
    
    #当倒序reverse =true时,从大到小排序,
    name=[1,10,-3,11]
    name.sort(reverse =True)                 
    print(name)
    #[11, 10, 1, -3]
    
    • 类型总结
    (1)可以储存多个值,值可以是任意类型
    (2)有序
    (3)可变类型(修改值以后ID依然相等)
    l=['a','b']
    print(id(l)) #4845856
    l[0]='A'
    print(id(l)) #4845856
    

    4. 元组 tuple

    • 定义:在()内用逗号分割开,可以存放任意类型的值
    • 用途:元组是不可变的列表,能存多个值,但多个值只有取的需求,而没有改的需求,那么用元组合最合理;(当元组内只有有个元素时,要加逗号)
    • 相关操作
    1、按索引取值(正向取+反向取):只能取   
    2、切片(顾头不顾尾,步长)
    3、长度
    4、成员运算in和not in
    5、循环
    注:用法同列表
    
    • 内置方法
    names=('lggx','effn','wx','lxx','chxx','lxx')
    print(names.count('lxx')) #个数
    print(names.index('wx')) #元素索引
    
    • 总结:
    可以存多个值
    有序
    不可变类型
    (值改变,ID变为不可变类型,ID不变为可变类型)
    与列表区别:(1)元组缓存于Python运行时环境,每次使用元组时无须访问内核去分配内存;创建开销小;适用存放一个不会改变事物的多个属性
    

    5. 字典 dic

    • 定义:{}内用逗号分隔开多个元素,每一个元素都是key:value的形式
      value可以是任意数据类型,但是key必须为不可变类型,key通常应该是字符串类型
    • 用途:用来存多个值,但每一个值都有一个key与之对应,key对值有描述性的功能
      当存储多个值表示的不同的状态
    • 相关操作
    1、按key存取值:增,取,改
    d={'x':1,'y':2}
    d['z']=3
    print(d)  #增
    print(d['x']) #取
    d['x']=100 #改
    print(d)
    
    2、长度len
    print(len(d))
    
    3、成员运算in和not in
    (判断字典中的key)
    
    4、删除
    (1)指定key值删除 del
    d ={'x':1,'y':2,'z':100}
    del d['x']
    print(d)  #{'y': 2, 'z': 100}
    (2)拿走一个值,有返回值 pop
    d ={'x':1,'y':2,'z':100}
    res=d.pop('y')
    print(d)
    print(res) # 2 (被删除的key,对应的value)
    (3) 删除最后一个键值对 popitem
    d ={'x':1,'y':2,'z':100}
    res=d.popitem()
    print(d)  #{'x': 1, 'y': 2}
    print(res) #('z', 100) 
    #被删除的键值对以元组的形式返回
    
    5、键keys(),值values(),键值对items()
    msg_dic={
    'apple':10,
    'tesla':100000,
    'mac':3000,
    }
    print(msg_dic.key())
    结果:dict_keys(['apple', 'tesla', 'mac'])
    print(msg_dic.values())
    结果:dict_values([10, 100000, 3000])
    print(msg_dic.items())
    结果:dict_items([('apple', 10), ('tesla', 100000), ('mac', 3000)])
    #转成列表
    print(list(msg_dic.keys()))
    结果:['apple', 'tesla', 'mac']
    
    6、循环
    (1) 只取key
    d={'a':1,'b':2,'c':3,'d':4}
    for k in d:
        print(k)   #abcd
    #for k in msg_dic.keys():
    #     print(k,msg_dic[k])
    (2)只取value
    d={'a':1,'b':2,'c':3,'d':4}
    for v in d .values() :
        print(v)
    (3)取key和value
    d={'a':1,'b':2,'c':3,'d':4}
    for d,v in d.items():
        print(k,v)
    
    • 内置方法
    (1) get(key,默认值) 取值,如果字典没有指定的key也不会报错,返回默认值None,也可自己设置默认值
    d={'x':1,'y':2,'z':3}
    v=d.get('g','hello')
    print(v)
    结果:hello
    #字典的key值中没有‘g’,返回默认值hello
    
    (2)update 更新字典元素
    d={'x':1,'y':2,'z':3}
    d1={'a':1,'x':1111}
    d.update(d1)
    print(d)
    结果:{'x': 1111, 'y': 2, 'z': 3, 'a': 1}
    
    (3)fromkeys() 创建新字典
    l=['name','age','sex']
    d={}
    for k in l:
        d[k]=None 
    d=dict.fromkeys(l,None)
    print(d)
    结果:{'name': None, 'age': None, 'sex': None}
    #key值不一样,value一样
    
    (4)setdefault() 
    #键不存在于字典中,将会添加键并将值设为默认值
    info={'name':'egon','age':18,'sex':'male'}
    res=info.setdefault('height',1.80)
    print(res)  #1.80
    print(info)
    结果:{'name': 'egon', 'age': 18, 'sex': 'male', 'height': 1.8}
    #如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值
    info={'name':'egon','age':18,'sex':'male'}
    res=info.setdefault('name','EGON_NB')
    print(res)  #egon
    print(info)
    结果:{'name': 'egon', 'age': 18, 'sex': 'male'}
    
    • 总结:

    无序、可变类型

    6. 集合 set

    • 定义:用{}可以包含多个元素,用逗号隔开,集合内元素是不可变类型,没有重复元素,无序的
    • 作用:将不同的值存在一起,不同的集合用来做关系运算
    • 集合去重注意事项:
    (1)去重的目标所包含的值为不可变类型;
    (2)去重后原有值的顺序被打乱
    l=['a','b',1,'a','a']
    a = set(l)
    print(a)
    
    • 基本操作
    (1)运算操作
    name = {'dd','gg','dd','ggg','ffb'}
    name1 = {'dd','dxd','ggg','cc'}
    print(name|name1)  #合集 {'cc', 'dd', 'gg', 'ffb', 'dxd', 'ggg'}
    print(name&name1)  #交集 {'dd', 'ggg'}
    print(name-name1)  #差集 {'gg', 'ffb'}
    print(name^name1)  #对称差集 {'cc', 'gg', 'ffb', 'dxd'}
    (2)父集包含关系(>,>=),子集被包含关系(<,<=)
    s1={1,2,3,4,5}
    s2={1,2,3}
    print(s1 > s2) # s1包含s2 True
    print(s1.issuperset(s2)) #True (包含)
    print(s2.issubset(s1))  #True (子集)
    
    • 内置方法
    name = {'dd','gg','dd','gbg','ffb'}
    #成员运算 in, not in
    print(len(name)) #元素个数
    name.add('vv')  #添加新元素
    print(name)
    name.update([1,3,4])  #添加多个元素
    print(name)
    name.remove('dd')  #删除指定的元素,没有指定的元素报错
    print(name)
    name.discard('c') #如果存在指定的元素就删除
    print(name)
    c=name.copy()  #复制集合
    print(c)
    print(name.pop())  #返回集合中的一个不确定元素
    name.clear() #删除集合元素
    print(name) #set()
    
    • 总结
    无序、
    存多个值
    值唯一
    可变类型
    

    7. 布尔类型 bool

    • 作用:
      判断一个条件成立时,用True标识,不成立则用False标识
    • 注意:
    1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
    2、其余均为真 
    

    占位符:
    food='chicken'
    print('今天 %s' %(food))
    print('今天 {}'.format(food))
    print(f'今天{food}')
    
  • 相关阅读:
    110、抽象基类为什么不能创建对象?
    109、什么情况会自动生成默认构造函数?
    108、如果想将某个类用作基类,为什么该类必须定义而非声明?
    107、类如何实现只能静态分配和只能动态分配
    106、C++中的指针参数传递和引用参数传递有什么区别?底层原理你知道吗?
    hdoj--2036--改革春风吹满地(数学几何)
    nyoj--46--最少乘法次数(数学+技巧)
    vijos--P1211--生日日数(纯模拟)
    nyoj--42--一笔画问题(并查集)
    nyoj--49--开心的小明(背包)
  • 原文地址:https://www.cnblogs.com/quqinchao/p/11220140.html
Copyright © 2020-2023  润新知