数据类型
数字
•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))
# #
# ^对称差集: 没有同时报名python和linux课程的学生名字集合
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: