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
    映射:字典



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/DE_LIU/p/7171945.html