zoukankan      html  css  js  c++  java
  • python--数据类型

                            数据类型      

     数字        

        •int(符号整数):通常被称为是整数或整数,没有小数点的正或负整数。

            •long(长整数):或渴望,无限大小的整数,这样写整数和一个大写或小写的L。

            •float(浮点实际值):彩车,代表实数,小数除以整数部分和小数部分的书面。花车也可能是在科学记数法与E或指示的10次方é(2.5e2= 2.5×102=250)。

            •complex  (复数):+ BJ的形式,其中a,b是彩车和J(或J)表示-1的平方根(这是一个虚数)。 a是真正的数字部分,b是虚部。复数不使用Python编程
            字符串
                str('*')  Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)。 str()语法: str.strip([chars]);
                        name = '**dddd**'                            
                        print(name.strip('*')) # 输入为 dddd
                        print(name.lstrip(*))  # 输出结果为dddd** 说明 str.lstrip('*') 移除左侧统配**的字符 只能移除头部所匹配的字符
                        print(name.rstrip(*))  # 输出结果为**dddd
                        bb = "&&&&&fff&&&&&&&&"
                        print(bb.strip('&'))   #输出为 fff
                startswith,endswith      用来判断字符串开头/结尾 是否一致。输出结果为(true/flase)
                        name='alex_SB'        
                        print(name.endswith('SB'))   #输出结果为 true
                        print(name.startswith('alex'))
                replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次(可以等于max次数)。
                        replace()方法语法:str.replace(old, new[, max])
                        a = "hi,isayhi you say hii"
                        print(a.replace('hi','ih',2))
                            # 输出为 ih,isayih you say hii 用new字符串代替旧字符串 代替几次
                format     用法:它通过{}和:来代替传统%方式 要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},
                        只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表
                        >>> print("my name is {},age {}".format('ll',11))
                        my name is ll,age 11
                        >>> print("my name is {1},age {0}".format('ll',11))
                        my name is 11,age ll
                        使用关键字参数 要点:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可
                        >>> hash = {"name":"haha","age":18} #字典
                        >>> print("my name is {name},age is {age}".format(name="haha",age="18"))
                        my name is haha,age is 18
                        
                        >>>print('my name is {name},age is {age}'.format(**hash))
                        my name is haha,age is 18
                find    python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,
                        则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
                        find()方法语法:str.find(str, beg=0, end=len(string))
                    参数    
                        str -- 指定检索的字符串
                        beg -- 开始索引,默认为0。
                        end -- 结束索引,默认为字符串的长度
                        >>> a = "this is my book"
                        >>> b = "s"
                        >>> print(a.find(b,8))
                        -1
                        >>> print(a.find(b,7))
                        -1
                        >>> print(a.find(b,6))
                        
                        
                        6
                        >>> print(a.find(b,2,3))
                        -1
                        >>> print(a.find(b,2,5))
                        3
                rind     Python rfind() 返回字符串最后一次出现的位置,如果没有匹配项则返回-1
                    参数 同上
                index   Python index() 返回字符串最后一次出现的位置,如果没有匹配项则返回-1
                    参数 同上
                rindex  Python rindex() 返回字符串最后一次出现的位置,如果没有匹配项则返回-1
                    参数 同上
                count   Python count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
                    参数
                        sub -- 搜索的子字符串
                        start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
                        end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
                    

                        str = "this is string example....wow!!!";

                        sub = "i";
                        print "str.count(sub, 4, 40) : ", str.count(sub, 4, 40)
                        sub = "wow";
                        print "str.count(sub) : ", str.count(sub)


                        str.count(sub, 4, 40) :  2
                        str.count(sub, 4, 40) :  1

     

          #split
    name='root:x:0:0::/root:/bin/bash'
    print(name.split(':')) #默认分隔符为空格
    name='C:/a/b/c/d.txt' #只想拿到顶级目录
    print(name.split('/',1))

    name='a|b|c'
    print(name.rsplit('|',1)) #从右开始切分


    #join
    tag=' '
    print(tag.join(['egon','say','hello','world'])) #可迭代对象必须都是字符串

    #center,ljust,rjust,zfill
    name='egon'
    print(name.center(30,'-'))
    print(name.ljust(30,'*'))
    print(name.rjust(30,'*'))
    print(name.zfill(50)) #用0填充


    #expandtabs
    name='egon hello'
    print(name)
    print(name.expandtabs(1))

    #lower,upper
    name='egon'
    print(name.lower())
    print(name.upper())


    #captalize,swapcase,title
    print(name.capitalize()) #首字母大写
    print(name.swapcase()) #大小写翻转
    msg='egon say hi'
    print(msg.title()) #每个单词的首字母大写

    #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
    '''

    #is其他
    print('===>')
    name='egon123'
    print(name.isalnum()) #字符串由字母和数字组成
    print(name.isalpha()) #字符串只由字母组成

    print(name.isidentifier())
    print(name.islower())
    print(name.isupper())
    print(name.isspace())
    print(name.istitle())

     

     

     

        列表list:包含在[]内,用逗号分割开
            用途(存多个值,可以修改):爱好,装备,女朋友们
                hobby=['play','eat','sleep']
            方法:
                hobby.append
                hobby.remove
            操作:
                查看:
                >>> girls=['alex','wsb',['egon','ysb']]
                >>> girls[2]
                ['egon', 'ysb']
                >>> girls[2][0]
                
                增加
                    girls.append(元素)
                删除
                    girls.remove(元素)
                    del girls[元素的索引]
                修改
                    girls[0]='alexSB'
                
        字典dict:定义在{},逗号分割,每一个元素的形式都是key:value
            
            student_info="""
            name:alex
            sex:None
            age:81
            hobby:zsb00 zsb1 zsb2 zsb3
            """
            
                         #name   sex  age hobby
            student_info=['alex',None,81,['zsb0','zsb1','zsb2','zsb30']]
            student_info[3][2]
        
        
            字典:
                用途:存多个值,这一点与列表相同,值可以是任意数据类型
                特征:每一个值都一个唯一个对应关系,即key,强调一点,key必须是
                    不可变类型:字符串,数字
            student_info={
                'age':81,
                'name':'alex',
                'sex':None,
                'hobbies':['zsb0','zsb1','zsb2','zsb30']
                }
                
                
            操作:
                查看
                >>> student_info={
                ...                     'age':81,
                ...                     'name':'alex',
                ...                     'sex':None,
                ...                     'hobbies':['zsb0','zsb1','zsb2','zsb30']
                ...                     }
                >>>
                >>> student_info['age']
                81
                >>> student_info['hobbies']
                ['zsb0', 'zsb1', 'zsb2', 'zsb30']
                >>> student_info['hobbies'][2]
                'zsb2'
                增加
                student_info['stu_id']=123456
                
                删除
                del student_info['stu_id']
                
                修改
                student_info['name']='alexSB'
        
        
        布尔:True False
            用途:用来判断
        
        >>> pinfo={'name':'oldboymei','age':53,'sex':'female'}
        >>>
        >>>
        >>> pinfo['age'] > 50
        True
        >>> pinfo['sex'] == 'female'
        True

     

    元组

    #为何要有元组,存放多个值,元组不可变,更多的是用来做查询
    t=(1,[1,3],'sss',(1,2)) #t=tuple((1,[1,3],'sss',(1,2)))
    # print(type(t))
    # #元组可以作为字典的key
    d={(1,2,3):'egon'}
    # print(d,type(d),d[(1,2,3)])

    # tup1 = (19971, 2000);
     # tup2 = (1, 2, 3, 4, 5, 6, 7 );
    #
    # print(complex(tup1,tup2))
    # #  索引
    #
    #     切片
    goods=('iphone','lenovo','sanxing','suoyi')
    print(goods[1:3])


    #
    #     长度
    #
    #in:
    #字符串:子字符串
    #列表:元素
    #元组:元素
    #字典:key

    goods=('iphone','lenovo','sanxing','suoyi')
    print('iphone' in goods)

    d={'a':1,'b':2,'c':3}
    print('b' in d)



    #掌握
    goods=('iphone','lenovo','sanxing','suoyi')
    print(goods.index('iphone'))
    print(goods.count('iphone'))

    #补充:元组本身是不可变的,但是内部的元素可以是可变类型
    t=(1,['a','b'],'sss',(1,2)) #t=tuple((1,[1,3],'sss',(1,2)))

    t[1][0]='A'
    print(t)
    # t[1]='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'

     

    pythons=['alex','egon','yuanhao','wupeiqi','gangdan','biubiu']
    linuxs=['wupeiqi','oldboy','gangdan']


    #求二者共同的部分:求即报名python又报名linux的学生
    # l=[]
    # for item in pythons:
    # if item in linuxs:
    # l.append(item)
    # print(l)


    #求只报名python,没有报名linux的学生
    # l=[]
    # for item in pythons:
    # if item not in linuxs:
    # l.append(item)
    # print(l)





    集合



    # 知识点回顾
    # 可变类型是不可hash类型
    # 不可变类型是可hash类型
    # d={[1,2,3]:'egon',}



    #定义集合
    #集合:可以包含多个元素,用逗号分割,
    #集合的元素遵循三个原则:
    #1:每个元素必须是不可变类型
    #2:没有重复的元素
    #3:无序
    # s={1,2,2,'eaaa',(1,2,3)} #s=set({1, 2, (1, 2, 3), 'eaaa'})
    # print(s,type(s))


    #优先掌握

    #  in not in
    # pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
    #
    # print('egon' in pythons)


    #
    #     |并集:老男孩所以报名的学生名字集合
    pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
    linuxs={'wupeiqi','oldboy','gangdan'}

    #
    # s=pythons | linuxs
    # print(s)

    # print(pythons.union(linuxs))


    #     &交集:求二者共同的部分:求即报名python又报名linux的学生
    # pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
    # linuxs={'wupeiqi','oldboy','gangdan'}
    # #
    # s=pythons & linuxs
    # print(s)
    #
    # print(pythons.intersection(linuxs))
    # print(linuxs.intersection(pythons))

    #
    #     -差集:求只报名python,没有报名linux的学生
    # pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
    # linuxs={'wupeiqi','oldboy','gangdan'}
    # print(pythons - linuxs)
    # print(pythons.difference(linuxs))
    #
    # print(linuxs - pythons)
    # print(linuxs.difference(pythons))
    # #


    #     ^对称差集: 没有同时报名pythonlinux课程的学生名字集合
    pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
    linuxs={'wupeiqi','oldboy','gangdan'}
    # print(pythons ^ linuxs)
    #
    # print(pythons.symmetric_difference(linuxs))
    # print(linuxs.symmetric_difference(pythons))





    #     ==set1={1,2,3}set2={1,2,3}# print(set1 == set2)#     >,>= ,<,<= 父集,子集set1={1,2,3,4,5}set2={1,2,3,4}# print(set1 >= set2)# print(set1.issuperset(set2))## print(set2 <= set1)# print(set2.issubset(set1))#掌握linuxs={'wupeiqi','oldboy','gangdan'}# linuxs.add('asb') #set类型的集合是可变类型# linuxs.add([1,2,3]) #报错,只能添加不可变类型# print(linuxs)# res=linuxs.pop() #不用指定参数,随机删除,并且会有返回值# print(res)# res=linuxs.remove('oldboy') #指定元素删除,元素不存在则报错,单纯的删除,没有返回值,# # print(linuxs)# print(res)## res= linuxs.discard('oldboy1111111') #指定元素删除,元素不存在不报错,单纯的删除,没有返回值,# # print(linuxs)# print(res)#了解linuxs={'wupeiqi','oldboy','gangdan'}new_set={'wupeiqi','alex_SB'}# linuxs.update(new_set)# print(linuxs)# new_set.update(linuxs)# print(new_set)# linuxs.clear()# linuxs.copy()set1={1,2,3}set2={4,1,2}# print(set1 - set2)# print(set1.difference(set2))# set1=set1-set2# print(set1)# set1=set1.difference(set2)# print(set1)# set1.difference_update(set2)# print(set1)# msg='hello'# msg=[1,2,'egon','egon']# msg=[1,2,'egon','egon',[1,2],[1,2]]# s=set(msg) #{1,2,'egon','egon',[1,2],[1,2]}# print(s)#for# pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}# for item in pythons:# print(item)#解压## a,*_={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}# print(a)#in:字符串,列表,元组,字典,集合#for:字符串,列表,元组,字典,集合#解压:字符串,列表,元组,字典,集合

     

    简单购物车联系

    msg_dic={
    'apple':10,
    'tesla':100000,
    'mac':3000,
    'lenovo':30000,
    'chicken':10,
    }
    goods_l=[]
    while True:
    for k in msg_dic:
    print('NAME:33[41m<{name}>33[0m PRICE:33[46m<{price}>33[0m'.format(name=k,price=msg_dic[k]))
    name=input('please input your goods name: ').strip()
    if len(name) == 0 or name not in msg_dic:continue
    while True:
    count=input('please input your count: ').strip()
    if count.isdigit():break

    goods_l.append((name,msg_dic[name],int(count)))
    print(goods_l)



    总结
    数据类型总结
        数字
        字符串
        列表
        元组
        字典

    按照存值个数:
        1个:数字,字符串
        多个:列表,元组,字典

    按照可变不可变:
        可变:列表,字典
        不可变:数字,字符串,元组

    按照访问方式:
        直接访问:数字
        索引:字符串,列表,元组==》序列类型seq
        映射:字典



     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    18.12.30 【sssx】Trie图
    18.12.30 【sssx】线段树
    18.12.25 POJ 1039 Pipe
    18.12.25 POJ 3525 Most Distant Point from the Sea(半平面+二分)
    18.12.25 POJ 1228 Grandpa's Estate
    18.12.22 luogu P3047 [USACO12FEB]附近的牛Nearby Cows
    18.12.21 DSA 中缀表达式的值
    18.12.21 luogu P3650 [USACO1.3]滑雪课程设计Ski Course Design
    18.12.21 【USACO】Times17
    18.12.20 DSA Full Tank?(DP+BFS)
  • 原文地址:https://www.cnblogs.com/DE_LIU/p/7171945.html
Copyright © 2011-2022 走看看