第十八节,基本数据类型作业
Posted 林贵秀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十八节,基本数据类型作业相关的知识,希望对你有一定的参考价值。
一、元素分类
1,将一个列表的元素,分类后分别放到两个列表中
有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至一个列表,小于等于66的值保存到另一个列表
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 print("将一个列表的元素,分类后分别放到两个列表中") 4 a = [11,22,33,44,55,66,77,88,99,90] 5 b = [] #创建空列表b 6 c = [] #创建空列表c 7 for i in a: #循环a列表元素 8 if i <= 66: 9 b.append(i) #判断循环到的元素小于或等于66的,追加到b列表 10 else: 11 c.append(i) #判断循环到的元素大于66的,追加到c列表 12 #分别打印出b列表和c列表 13 print(b) 14 print(c) 15 #打印出 16 #[11, 22, 33, 44, 55, 66] 17 #[77, 88, 99, 90]
2,将一个列表的元素,分类后分别放到一个字典中,列1
有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的k1键值,小于等于66的值保存至字典的k2键值
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 print("将一个列表的元素,分类后分别放到一个字典中,列1") 4 a = [11,22,33,44,55,66,77,88,99,90] 5 b = [] #创建空列表b 6 c = [] #创建空列表c 7 for i in a: #循环a列表元素 8 if i <= 66: 9 b.append(i) #判断循环到的元素小于或等于66的,追加到b列表 10 else: 11 c.append(i) #判断循环到的元素大于66的,追加到c列表 12 d = {"k1":b, "k2":c} #新创建一个字典,键为k1和k2,把b列表赋值给k1键,把c列表赋值给k2键 13 print(d)#打印出d字典 14 #打印出 {‘k2‘: [77, 88, 99, 90], ‘k1‘: [11, 22, 33, 44, 55, 66]}
3,将一个列表的元素,分类后分别放到一个字典中,列2
有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的k1键值,小于等于66的值保存至字典的k2键值
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 print("将一个列表的元素,分类后分别放到一个字典中,列2") 4 a = [11,22,33,44,55,66,77,88,99,90] 5 b = {"k1":[], "k2":[]} 6 for i in a: #循环a列表元素 7 if i <= 66: 8 b["k1"].append(i) #判断循环到的元素小于或等于66的,追加到b列表 9 else: 10 b["k2"].append(i) #判断循环到的元素大于66的,追加到c列表 11 print(b) 12 #打印出 {‘k2‘: [77, 88, 99, 90], ‘k1‘: [11, 22, 33, 44, 55, 66]}
二、查找
查找列表,元组,字典,中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"]
tu = ("alec", " aric", "Alex", "Tony", "rain")
dic = {‘k1‘: "alex", ‘k2‘: ‘ aric‘, "k3": "Alex", "k4": "Tony"}
1,查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"]
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 print("查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。") 4 li = ["aleb", " aric", "Alex", "Tony", "rain"] 5 for i in li: 6 b = i.strip() #移除循环到数据的两边空格 7 #判断b变量里以a或者A开头,并且以c结尾的元素 8 #注意:如果一个条件语句里,or(或者),and(并且),都在条件判断里,将前面or部分用括号包起来,当做一个整体, 9 #不然判断到前面or部分符合了条件,就不会判断and后面的了,括起来后不管前面符不符合条件,后面的and都要判断的 10 if (b.startswith("a") or b.startswith("A")) and b.endswith("c"): 11 print(b) #打印出判断到的元素 12 #打印出 13 #aric
2,查找元组中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
tu = ("aleb", " aric", "Alex", "Tony", "rain")
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 print("查找元组中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。") 4 tu = ("aleb", " aric", "Alex", "Tony", "rain") 5 for i in tu: 6 tu1 = i.strip() #移除循环到数据的两边空格 7 #判断tu1变量里以a或者A开头,并且以c结尾的元素 8 #注意:如果一个条件语句里,or(或者),and(并且),都在条件判断里,将前面or部分用括号包起来,当做一个整体, 9 #不然判断到前面or部分符合了条件,就不会判断and后面的了,括起来后不管前面符不符合条件,后面的and都要判断的 10 if (tu1.startswith("a") or tu1.startswith("A")) and tu1.endswith("c"): 11 print(tu1) #打印出判断到的元素 12 #打印出 13 #aric
3,查找字典中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
dic = {‘k1‘: "alex", ‘k2‘: ‘ aric‘, "k3": "Alex", "k4": "Tony"}
1 print("查找字典中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。") 2 dic = {‘k1‘: "aleb", ‘k2‘: ‘ aric‘, "k3": "Alex", "k4": "Tony"} 3 for i in dic: 4 dic1 = dic[i].strip() #移除循环到数据的两边空格 5 #判断dic1变量里以a或者A开头,并且以c结尾的元素 6 #注意:如果一个条件语句里,or(或者),and(并且),都在条件判断里,将前面or部分用括号包起来,当做一个整体, 7 #不然判断到前面or部分符合了条件,就不会判断and后面的了,括起来后不管前面符不符合条件,后面的and都要判断的 8 if (dic1.startswith("a") or dic1.startswith("A")) and dic1.endswith("c"): 9 print(dic1) #打印出判断到的元素 10 #打印出 11 #aric
三、输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", ‘鼠标垫‘, ‘游艇‘]
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 print("输出商品列表,用户输入序号,显示用户选中的商品") 4 li = ["手机", "电脑", ‘鼠标垫‘, ‘游艇‘] 5 for i,j in enumerate(li,1): #自定义列表索引下标,从1开始,将列表索引下标赋值给i,将列表值赋值给j 6 print(i,j)#打印出列表的索引下标,和列表的值 7 a = input("请输入商品序号") #要求用户输入商品序号 8 if a.isdigit():#判断用户输入的是否是纯数字 9 pass 10 else: 11 exit("你输入的不是有效的商品序号")#如果不是纯数字打印提示信息,并且退出程序,不在往下执行 12 a = int(a) #将用户输入的序号转换成数字类型 13 b = len(li)#统计li列表的元素个数 14 if a > 0 and a <= b: #判断 15 c = li[a-1] 16 print(c) 17 else: 18 print("商品序号不存在")
四、购物车
功能要求:
- 要求用户输入总资产,例如:2000
- 显示商品列表,让用户根据序号选择商品,加入购物车
- 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
- 附加:可充值、某商品移除购物车
1.用列表构造以购买产品,购物车
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # 四、购物车 4 # 功能要求: 5 # 要求用户输入总资产,例如:2000 6 # 显示商品列表,让用户输入商品名称,加入购物车 7 # 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 8 # 附加:可充值、某商品移除购物车 9 10 #用列表构造以购买产品,购物车 11 #默认总资产等于0 12 zong_zi_chan = 0 13 #要求用户输入总资产 14 zong_zi_chan1 = input("请输入总资产") 15 #判断用户输入的是否是纯数字 16 if zong_zi_chan1.isdigit(): 17 pass 18 else: 19 exit("你输入的不是数字类型的资产") 20 #将用户输入的总资产转换成整数类型 21 zong_zi_chan = int(zong_zi_chan1) 22 #打印出用户输入的总资产 23 print("你的总资产为:",zong_zi_chan,"元") 24 #换行 25 print("\n") 26 27 print("可购买商品有:") 28 shang_pin = [ 29 {"名称":"手机", "价格":200}, 30 {"名称":"电脑", "价格":300}, 31 {"名称":"水笔", "价格":10}, 32 {"名称":"纸张", "价格":20}, 33 ] 34 #以购买商品 35 shang_pin2 = [] 36 for i in shang_pin: 37 #通过循环列表里面字典的键,来显示出商品和价格 38 print(i["名称"], i["价格"], "元") 39 #换行 40 print("\n") 41 42 ming = "" 43 while True: 44 #要求用户输入要购买的商品名称 45 ming_cheng = input("输入y结算/请输入要购买的商品名称挑选商品") 46 if ming_cheng == "y":#判断用户输入的是商品名称还是结算符 47 break #如果用户输入的是结算符退出while进行结算 48 else: 49 for i in shang_pin: 50 #循环产品列表,判断循环到的产品名称是否有等于用户输入的名称 51 if i["名称"] == ming_cheng: 52 #如果循环到的产品名称有等于用户输入的名称,将这个名称赋值给ming变量 53 ming = i["名称"] 54 else: 55 pass 56 #判断ming变量是否等于用户输入的 57 if ming == ming_cheng: 58 pass 59 else: 60 #如果不等于提示商品名称不存在,退出程序 61 exit("你输入的商品名称不存在") 62 for i in shang_pin: 63 #循环商品列表,判断商品名称是否有等于用户输入的 64 if i["名称"] == ming_cheng: 65 #如果循环到的商品名称等于用户输入名称,将此商品字典追加更新到一个新列表,也就是用户 66 shang_pin2.append(i) 67 print("你以挑选了:",shang_pin2) 68 zongjia = 0 69 for i in shang_pin2: 70 danjia = i["价格"] 71 zongjia += danjia 72 print("现在开始结算共计:", zongjia, "元") 73 if zong_zi_chan >= zongjia: 74 print("恭喜你购买成功") 75 else: 76 print("你的余额不足,请充值")
2.用字典构造以购买产品,购物车
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #功能要求: 4 # 要求用户输入总资产,例如:2000 5 # 显示商品列表,让用户输入商品名称,加入购物车 6 # 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 7 # 附加:可充值、某商品移除购物车 8 9 #用字典构造以购买产品,购物车 10 #用户输入总资产 11 zong_zi_chan = input("请输入你的总资产") 12 #将用户输入总资产转换成数字类型 13 zong_zi_chan1 = int(zong_zi_chan) 14 #打印出总资产 15 print("您的总资产为",zong_zi_chan1,"元") 16 print("\n") 17 18 #产品字典 19 shang_pin = [ 20 {"名称":"手机", "价格":200}, 21 {"名称":"电脑", "价格":300}, 22 {"名称":"水笔", "价格":10}, 23 {"名称":"纸张", "价格":20}, 24 ] 25 print("可购买产品有:") 26 for i in shang_pin: 27 #循环出产品字典里的名称和价格 28 print(i["名称"],i["价格"],"元") 29 30 print("\n") 31 #以购买的产品 32 gou_mai2 = {} 33 #循环购买模块 34 while True: 35 #用户输入要购买的产品名称 36 gou_mai = input("请输入要购买的商品名称,输入y结算") 37 #将用户输入的信息进行判断,如果用户输入的是y退出循环购买模块 38 if gou_mai.lower() == "y": 39 break 40 else:#如果用户输入不是y执行下面 41 for i in shang_pin: 42 #判断循环到的产品名称如果等于用户输入的购买名称 43 if i["名称"] == gou_mai: 44 #将循环到的赋值给一个变量 45 chan_pin = i["名称"] 46 #判断循环到的名称在已购买产品字典里是否存在这个键 47 if chan_pin in gou_mai2.keys(): 48 #如果存在将已购买产品字典里本条数据的数量加1 49 gou_mai2[chan_pin]["数量"] = gou_mai2[chan_pin]["数量"] + 1 50 else: 51 #如果不在将已购买产品字典里,将本条数据更新到已购买产品字典里,默认数量1 52 gou_mai2[chan_pin] = {"价格":i["价格"], "数量":1} 53 #打印已购买产品 54 print(gou_mai2) 55 56 print("\n") 57 print("您以购买的商品有:") 58 #购买产品的所有共计费用 59 gong_ji = 0 60 #循环出以购买产品字典里的键和值 61 for k,v in gou_mai2.items(): 62 #将字典里的价格赋值给一个变量 63 jia_ge = v["价格"] 64 #将字典里的数量赋值给一个变量 65 shu_liang = v["数量"] 66 #将数量乘以价格等于每样产品的总价 67 zong_jia = shu_liang * jia_ge 68 #打印出以购买的每样产品的价格,数量,总价 69 print(k,"价格", v["价格"], "数量", v["数量"], "总价=",zong_jia) 70 #每次循环累计共计加总价等于共计消费 71 gong_ji += zong_jia 72 #打印出共计费用 73 print("共计:",gong_ji) 74 75 #判断总资产如果大于或者等于共计费用,购买成功,如果总资产小于共计费用说明资金不够 76 if zong_zi_chan1 >= gong_ji: 77 print("恭喜你购买成功") 78 else: 79 print("对不起你的资金不够,请充值")
五、用户交互,显示省市县三级联动的选择
用户输入省份,显示出他下面的市,用户输入市,显示出他下面的县(区)
#!/usr/bin/env python # -*- coding:utf-8 -*- # 五、用户交互,显示省市县三级联动的选择 #用户输入省份,显示出他下面的市,用户输入市,显示出他下面的县(区) dic = { "四川":{ "自贡":["富顺", "沿滩", "黄市", "板桥"], "内江":["东兴区", "资中县", "威远县", "隆昌县"] }, "云南":{ "昆明市":["五华区", "盘龙区", "官渡区", "西山区"], "昭通市":["昭阳区", "水富县", "永善县", "鲁甸县"] } } #循环输出所有的省 for i in dic: #循环出省份 print(i) #打印循环到的省份 a = input("请输入省份名称") #要求用户输入省份 b = a in dic.keys() #检查用户输入的省份是否在dic字典里 if b == True:#判断用户输入的省份是否存在 pass #如果存在直接跳过 else: exit("你输入的省份不存在")#如果不存在给出提示,退出程序,不在往下执行 key = dic[a]#将用户输入的省份作为字典的键 for i in key:#将用户输入的省份作为字典的键,在循环出它下面的市 print(i)#打印出循环到的市 c = input("请输入市名称")#要求用户输入市名称 d = c in key.keys() #检查用户输入的市是否存在 if d == True:#判断用户输入的市是否存在 pass#如果存在直接跳过 else: exit("你输入的市名称不存在")#如果不存在给出提示,退出程序,不在往下执行 key2 = key[c]#将用户输入的,省份,市,作为字典键 for i in key2:#将用户输入的,省份,市,作为字典键,循环市下面的各级县 print(i)#打印出循环到的各级县
以上是关于第十八节,基本数据类型作业的主要内容,如果未能解决你的问题,请参考以下文章