zoukankan      html  css  js  c++  java
  • 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}')
    
  • 相关阅读:
    nowcoderD Xieldy And His Password
    Codeforces681D Gifts by the List
    nowcoder80D applese的生日
    Codeforces961E Tufurama
    Codeforces957 Mahmoud and Ehab and yet another xor task
    nowcoder82E 无向图中的最短距离
    nowcoder82B 区间的连续段
    Codeforces903E Swapping Characters
    Codeforces614C Peter and Snow Blower
    Codeforces614D Skills
  • 原文地址:https://www.cnblogs.com/quqinchao/p/9118705.html
Copyright © 2011-2022 走看看