第十八节,基本数据类型作业

一、元素分类

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("
")
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("
")
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("
")
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("
")
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("
")
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)#打印出循环到的各级县
 
原文地址:https://www.cnblogs.com/adc8868/p/5583772.html