• Python的数据类型和常用方法大全


    数据类型

    一.数字

    整形int

    x=10 #x=int(10)
    print(id(x),type(x),x)

    浮点型float

    salary=3.1 #salary=float(3.1)
    print(id(salary),type(salary),salary)

    二.字符串

    name='hantao'
    #按索引取值(正向取+反向取) :只能取
    print(name[0],type(name[0]))
    print((name[-1]))
    # 切片(顾头不顾尾,步长)
    print(name[1:3])
    print(name[0:5:2])
    print(name[5::-1])
    # 长度len
    print(len(name))
    # 成员运算in和not in
    msg='hellochantao'
    print('hantao'in msg)
    # 移除空白strip
    passwd='  hantao123    '
    print(passwd.strip())
    passwd1='****hantao***'
    print(passwd1.strip('*'))
    print(passwd.lstrip())
    print(passwd.rstrip())
    # 切分split
    user='hantao:liangchaowei:liudehua'
    print(user.split(':'))
    user.split('',1) #选定切分的数量
    user.rsplit('',1) #从右侧切分
    #判断开头结尾
    msg='hantao_is_cool'
    print(msg.startswith('han'))
    print(msg.endswith('cool'))
    #用replace替换
    msg='hantao say i have a tesla,my name is hantao'
    print(msg.replace('hantao','sb',1))       #替换,后面数字是替换数量
    #format格式化
    print('my name is %s,my age is %s'%('hantao',18))
    print('my name is {},my age is {}'.format('hantao',18))
    print('my name is {0},my age is {1}'.format('hantao',18))
    print('my name is {a},my age is {b}'.format(a='hantao',b=18))
    #查找
    msg='hello world'
    print(msg.find('hel'))
    print(msg.index('o'))
    print(msg.count('l',0,4))
    #join连接
    print(':'.join(['hantao', 'liangchaowei', 'liudehua']))   #必须是字符串放在一个列表中传入join
    #填充
    print('info'.center(30,'='))
    print('info'.rjust(30,'='))
    print('info'.ljust(30,'='))
    print('info'.zfill(30))
    #is数字系列
    #在python3中
    num1=b'4' #bytes
    num2=u'4' #unicode,python3中无需加u就是unicode
    num3='四' #中文数字
    num4='Ⅳ' #罗马数字

    #isdigt:bytes,unicode
    print(num1.isdigit()) #True
    print(num2.isdigit()) #True
    print(num3.isdigit()) #False
    print(num4.isdigit()) #False

    #isdecimal:uncicode
    #bytes类型无isdecimal方法
    print(num2.isdecimal()) #True
    print(num3.isdecimal()) #False
    print(num4.isdecimal()) #False

    #isnumberic:unicode,中文数字,罗马数字
    #bytes类型无isnumberic方法
    print(num2.isnumeric()) #True
    print(num3.isnumeric()) #True
    print(num4.isnumeric()) #True

    #三者不能判断浮点数
    num5='4.3'
    print(num5.isdigit())
    print(num5.isdecimal())
    print(num5.isnumeric())
    '''
    总结:
        最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
        如果要判断中文数字或罗马数字,则需要用到isnumeric
    '''
    #find,rfind,index,rindex,count
    name='hantao say hello'
    print(name.find('h',1,3)) #顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引
    # print(name.index('h',2,4)) #同上,但是找不到会报错
    print(name.count('h',1,3)) #顾头不顾尾,如果不指定范围则查找所有
    #center,ljust,rjust,zfill
    name='hantao'
    print(name.center(30,'-'))
    print(name.ljust(30,'*'))
    print(name.rjust(30,'*'))
    print(name.zfill(50)) #用0填充
    #expandtabs  方法把字符串中的 tab 符号('	')转为空格,tab 符号('	')默认的空格数是 8。
    name='egon	hello'
    print(name)
    print(name.expandtabs(1))
    #captalize,swapcase,title
    print(name.capitalize()) #首字母大写
    print(name.swapcase()) #大小写翻转
    print(msg.title()) #每个单词的首字母大写
    #is其他
    print('===>')
    name='hantao123'
    print(name.isalnum()) #字符串由字母或数字组成
    print(name.isalpha()) #字符串只由字母组成
    
    print(name.isidentifier())
    print(name.islower())
    print(name.isupper())
    print(name.isspace())
    print(name.istitle())

    四.列表

    # 按索引存取值(正向存取+反向存取):即可存也可以取
    print(my_familly[2])
    print(my_familly[-1])
    # 切片(顾头不顾尾,步长)
    print(my_familly[0:3])
    print(my_familly[0:5:2])
    print(my_familly[5::-1])
    # 长度
    print(len(my_familly))
    # 成员运算in和not in
    print('nep'in my_familly)
    # 追加
    my_familly.append('Corgi')
    print(my_familly)
    # 删除
    goods=['apple','banana','pear']
    del goods[-1]
    print(goods.remove('apple'))   #不返回删除值
    print(goods.pop(1))  #按照索引删,默认末尾开始删,返回删除值
    print(goods)
    #其他
    goods=['apple','banana','pear','banana']
    # goods.insert(0,'sb')      #具体插入的位置
    # goods.extend(['meat','eggs']) 
    # print(goods.count('banana'))
    # goods.reverse()    #反转
    # l=[2,4,6,1,-3]
    # l.sort(reverse=True)
    # print(l)
    print(goods)

    五.元祖

    ages=(23,34,23,12)
    # 按索引取值(正向取+反向取):只能取
    print(ages[1])
    # 切片(顾头不顾尾,步长)
    print(ages[0:2])
    # 长度
    print(len(ages))
    # 成员运算in和not in
    print(23 in ages)
    ages=(23,34,23,12)
    print(ages.index(12))  #查找索引
    print(ages.count(23))  #查找个数

     小练习

    '''
    简单购物车,要求如下:
    实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
    '''
    msg_dic={
    'apple':10,
    'tesla':100000,
    'mac':3000,
    'lenovo':30000,
    'chicken':10,
    }
    l = []
    while True:
        for key in msg_dic:
            print(key,msg_dic[key])
        goods=input('input your good:').strip()
        if goods not in msg_dic:continue
        while True:
            counts=input('input the number:').strip()
            if counts.isdigit():break
    
        l.append((goods,msg_dic[goods],counts))
        print(l)

    六.词典

    info={'name':'egon','age':18,'sex':'male'}
    # 按key存取值:可存可取
    print(info['name'])
    info['hobbies']=['eat','drink','sleep']
    print(info)
    # 长度len
    print(len(info))
    # 删除
    print(info.pop('na1me',None))
    # 键keys(),值values(),键值对items()
    print(info.keys())
    print(info.values())
    print(info.items())
    for item in info.items():
        print(item)
    info={'name':'egon','age':18,'sex':'male'}
    print(info.get('name'))  #取出value
    print(info.get('na1me'))   #返回None
    print(info.popitem())   #随机删
    t=['23','23','45','45']
    a,*_,d=t   #压缩赋值
    print(a,d)
    for a,b in info.items():
        print(a,b)
    info_new={'a':1,'b':3,'name':'hantao'}
    info.update(info_new)    #没有则新加,有则更新
    print(info)
    dic={}.fromkeys(['name','age','hobbies'])  #初始字典
    print(dic)
    print(info.setdefault('age','20'))    #有则不改(且返回有的值),无则增
    #字典推导式
    d = {'A' : 1, 'B' : 2, 'C' : 3}
    d_new={v:k for k,v in d.items()}

    七.集合

    '''
    1:每个元素必须是不可变类型(可hash,可作为字典的key)
    2: 没有重复的元素
    3:无序
    '''
    #作用:去重,关系运算
    s={1,2,'a'}  #s=set({1,2,'a'})
    s1={1,2,3}
    s2={2,3,4}
    # | 并集
    s1|s2
    s1.union(s2)
    # & 交集
    s1&s2
    s1.intersection(s2)
    s1.intersection_update(s2)
    # - 差集 s1-s2 s1.difference(s2)
    s1.sifference_update(s2)
    # ^ 对称差集 s1^s2 s1.symmetric_difference(s2) #父集 s1>=s2 s1.issuperset(s2) #子集 s1<=s2 s1.issubset(s2)
    s1={1,2,3,4,'a'}
    # print(s1.pop())  #随机删,返回结果
    # print(s1.remove(1))  #删元素,不返回值,元素不存在,报错
    # s1.discard(1)   #删元素,不返回值,元素不存在,不报错
    s2={5,6}
    print(s1.isdisjoint(s2))    #s1和s2没有交集,则返回True
    # 有如下列表,列表元素为不可hash类型,去重,得到新列表,且新列表一定要保持列表原来的顺序
    l=[
        {'name':'egon','age':18,'sex':'male'},
        {'name':'alex','age':73,'sex':'male'},
        {'name':'egon','age':20,'sex':'female'},
        {'name':'egon','age':18,'sex':'male'},
        {'name':'egon','age':18,'sex':'male'},
    ]
    l1=[]
    for i in l:
        if i not in l1:l1.append(i)
    print(l1)
    #另一种集合的数据类型
    s=forenset()

     

  • 相关阅读:
    小问题也是大问题
    Java GC(2)
    Java GC(1)
    mac eclipse svn
    svn merge
    LTE,WiMAX与WIFI相关知识链接整理
    【LTE基础知识】承载相关概念介绍
    【LTE基础知识】LTE空口协议分析
    LTE基础知识
    Scapy学习2
  • 原文地址:https://www.cnblogs.com/hantaozi430/p/7505732.html
Copyright © 2020-2023  润新知