一,变量
# 变量是用一个变量名来表示,变量必须有大小变量名的开头不能是用 下滑线数字开头的
#:变量没有处置功能只是定义个名字只是绑定功能
# 变量的解压:
# a,b,c,d,e='hello'
# a,*_,e='hello'
# print(a,e)
#:链式赋值
#:x=y=z=1
#:增量赋值
#:x+=1
二,列表(list)
# 定义:[]内用逗号分隔,按照索引,存放各种类型,每个位置代表一个元素的特性
# 1,可以存放多个值
# 2可以修改指定的索引位置对应的值,是可变的类型(可变类型的定义:是id 不变 type不变值变的过程)
# 1列表的一些操作方法:
# c=["alex","wang"] # for i in range (len(c)): # print(c[i]) #:索引的方法 # for i in (c): # print(i) #:也是索引的方法 # c.append("asad") #:插入的方法到最后 #:c.insert(2,'adadad') #:插入到指定的位置 #:c.pop(1) #:删除的功能后面加的索引值: #:c[1]="afafafa" #:替换的功能 #: exted 接受一个参数用列表来表示 #:c.remove(1) #:删除第一次出现的该元素 #:c,count() #;括号里写一个元素在这个列表里面出现了几次 #:c.index(2) #:第二个元素没有抛出异常 #:c.sort() #:排序的功能 #:c.reverse() #:反转的功能 #:clear #:清空的功能一般不用 #:c.extend(list) #:追加列表 就是吧list写到list
三,元组(tuple)
# tuple(元组)是另一种有序的列表()小括号表示 # tuple内容不能修改不能增加删除只能查看 # 定义单个元组时括号内要加(,)不加的话被认为是()Python优先级 # tuple中的不变是指每个元素的不变 但要是有 # list列表就会发生改变例如: t = ('a', 'b', ['A', 'B']) #:具有索引,切片,循环,的功能
四,字符串(str)
c="alex" print(c.upper()) #:把字符中的小写字母转换成大写的字母 isupper判断是不是大写 print(c.lower()) #把字符中的大写字母变成小写字母 print(c.capitalize()) #:把开头的第一个单词变小写 print(c.title()) #:每个单词的第一个字母转换为大写其他小写 print(c.endswith(“x”) #:查看是不是x结尾 print(c.startswith("a") #:查看是否a开头 print(c.find("a") #:查看a的索引位置 print(x.format) #:格式化字符串和%s差不多 print(c.isdigit()) #:查看字符串是否是数字 print(c.isspace()) #:是否是空格
print(c.isalpha()) #:查看是否是字母
print(c.replace('x','X') #:替换的功能
重点字符串
strip() #:去除空格还有一些特殊的符号 " ".join(["i","am","world!"]) 列表变换成字符串 " hello world". split ("1",1) 字符串变换成列表 "hello world".index("q") 索引 s.replace("world,","python") 替换 eval(字符串可以算加法 把字符放在python中可以执行) print("hello %s,%s"%("sb","egon")) 这就是传说中的格式化 print("hello{name},his age is {age}".formt(age),format(age= 30,name= "wusir")) print("一".isdigit())
五,字典(dict)
定义:{key1:value1,key2:value2},key-value结构,keys必须是哈西值
特性:可以存放多个值2可以修改指定key对应的值,可变但是不能有两个相同的key 无需性
字典遍历就是用for循环第一个到最后一个的过程 dict的特点是查找速度快,无论有多少个都一样
# d={'a':1,'b':2,'c':3,} # for k,v in d.items(): # print(k,v) #:通过这个方法能把字典中的a 和 数字1 #:good={"tom":123,"alex":456,"egon";778,"tom":918} #:for k,v in good.items(): #: # print(k,v) #:字典的遍历 #:for i in good: # print(i,good[i]) #:循环取值 #:good["tom"]="123 #:字典的修改 #:good["gao"]="567 #:字典的增加 #:del good["tom"} #::字典的删除
#:del pop(key) #:用key删除 #:good clear #:删除所有
#:print(goos.get(“da”)) #:查看k值
#:d.setdefault('z',3) #:添加
#:d5=dict(['x',1),('y',2),('z',3)])
#: print(d5) #:创建字典
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
# 而list相反:
# 查找和插入的时间随着元素的增加而增加;
# 占用空间小,浪费内存很少。
# 所以,dict是用空间来换取时间的一种方法。
# dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要
这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key:
六,集合(set):
集合的基本形式:set_dic={"adada","1","dada","aad"}
集合的特点作用:无序性,不能重复的特性,必须是可以哈西的(和字典一样没有下标不能索引取值)
#集合去重 # s={'egon',123,'egon','1'} # print(list(set(s))) #:打印出来的结果是无序的
#:s={'1',1,(1,2),'a','b'}
#: for i in s:
#: print(i) #:循环(因为集合不能单独取值)有两种取值一种是依赖索引取值另一种不依赖索引)
#: c={'保时捷','迈凯伦','帕加尼‘,‘埃文塔多’}:
#: h={'宝马','迈凯伦','帕加尼‘,‘布加迪’}
#:找共同的部分 :交集
#:print( c & h) 结果:迈凯伦,帕加尼 print(c.intersection (h))
#:去所有的车型 : 并集
#:print( c | h) #:(结果全部车型) print(c.union(h))
#:找只在c部分的车型:差集
#:print(c - h) #:只存在c里面 print(c.difference(h)
#:就是不同时在c 和 h 中的问题里面:对称差集
#:print(c ^ h)
七、数据类型分类
1、可变不可变
可变:列表,字典
不可变:数字,字符串,元组
2、存放值的个数
一个值:数字,字符串
多个值(容器类型):列表,元组,字典
3、取值方式
直接取值:数字
序列类型:字符串,元组,列表
映射类型:字典
七作业
有如下值集合 [11,22,33,44,55,66,77,88,99,90...]将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
# c=[11,22,33,44,55,66,77,88,90] # b={"k1":[],"k2":[]} # for i in c: # if i >66: # b["k1"].append(i) # else: # b["k2"].append(i) # print(b)
二、查找
查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"]
# for i in li: #:循环列表里面的信息 # b=i.strip() #:去除列表里面空格和其他 # if(b.startswith("a")or b.startswith("A")) and b.endswith("c"): # #:必须是以字母a开头或者是A开始并且是以c结尾: # print(b)
tu = ("alec", " aric", "Alex", "Tony", "rain")
# for i in tu: # b=i.strip() # if(b.startswith("a")or b.startswith("A"))and b.endswith("c"): # print(b)
dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
# dic={'k1':"alex",'k2':"aric","k3":"Alex","k4":"tony"} # for i in dic: # b=dic[i].strip() # if(b.startswith("a")or b.startswith("A"))and b.endswith("c"): # print(b)
四、购物车
功能要求:要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
附加:可充值、某商品移除购物车
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
选做题:用户交互,显示省市县三级联动的选择
# assert_all=0 #:定义你的钱数 # car_list=[] #:定义购物车 # while True: # i2 = input("请输入你所带的金钱:") # try: # assert_all=int(i2) #:如果你输入的是整数正确退出循环往下执行 # break; # except: # print("你输入的什么鬼") #:如果你输入的是其他的东西就会继续循环直达输入正确的整数 # continue; # goods = [ # {"name": "电脑", "price": 1999}, # {"name": "鼠标", "price": 10}, # {"name": "游艇", "price": 20}, # {"name": "美女", "price": 998}, # ] # for i in goods: # print(i["name"],i["price"],"元") #:循环购物车里面的东西 # while True: # i2=input("请你选择商品(滚/y退出):") #:输入选择的商品 # if i2.lower()=="y": #:如果输入的是 “y”就退出 # break; # for j in goods: # if j["name"] == i2: #:如果输入的存在字典里面 # car_list.append(j); #:添加到字典里面去 # print("","电脑",1999,"元"," ","鼠标",10,"元"," ","游艇",20,"元"" ","美女",998,"元") # print(car_list) #:打印购物车里面的东西 # all_price=0 #:定义 # for item in car_list: #:循环购物车里面的东西 # p=item["price"] #:一件东西的价格 # all_price=all_price+p #:东西一共多少钱 # if assert_all >all_price: #:如果所带的钱比买的东西钱多 # # print("买的起") # c=assert_all-all_price #:剩余的钱数
# print("总计:",assert_all,"消费:"all_price) # print("买的起你的剩余金钱为:",c) #:打印出来 # print("欢迎下次光临") # else: # h=all_price-assert_all #:如果你带的钱没有购买商品的钱多 # print("你买不起欠的钱为:",h) #:打印你欠了多少钱 # i3=input("钱不够可以充钱:") #:输入你要冲值的钱 # if int(i3)>h: #:如果大于缺的钱数就会打印买的起 并且会 打印你剩余的钱数 # print("买得起") # f=int(i3)-h # print("剩余金钱为:",f) # print("欢迎下次光临") # else: # print("你输入的钱还差一些返回你冲的钱:",i3) #:如果你输入欠的钱不够就花返给你并且退出 # print("欢迎下次光临") #