练习题(一)

《一》元素分类

            有如下值集合 v1 = [11,22,33,44,55,66,77,88,99,90],
            将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
            即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
            
            v2 = {'k1': [],'k2':[] }

#!/usr/bin/env python

v1 = [11,22,33,44,55,66,77,88,99,90]
saved = {}
k1=[]
k2=[]
for i in v1:
        if i > 66:
                k1.append(i)
                saved['k1']=k1

        elif i<66:
                k2.append(i)
                saved['k2']=k2
print (saved)
View Code

 

《二》功能要求:
            v = 2000
            要求用户输入总资产,例如:2000
            显示商品列表,让用户根据序号选择商品,加入购物车
            购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
            goods = [
                {"name": "电脑", "price": 1999},
                {"name": "鼠标", "price": 10},
                {"name": "游艇", "price": 20},
                {"name": "美女", "price": 998},
            ]

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 ### shopping.py ###
 4 #v=2000
 5 yes_no = ""
 6 good_list=[]
 7 goods = [
 8         {"name":"电脑","price":1999},
 9         {"name":"鼠标","price":10},
10         {"name": "游艇","price": 20},
11         {"name": "美女", "price": 998},
12 ]
13 v = int(input("请输入您的总资产:"))
14 print("您的总资产为:%d " % v)
15 while True:
16         num = input("""以下为商品序号及所对应的商品价格,
17         0、电脑:1999
18         1、鼠标:10
19         2、游艇;20
20         3、美女:998
21 请输入商品序号,来选择商品购买:""")
22         try:
23                 num = int(num)
24         except:
25                 print ("Error:请输入数字.")
26         else:
27                 if 0 <= num < len(goods):
28                         print("您选择的商品为:%s" % goods[num]["name"])
29                         if v > goods[num]["price"]:
30                                 v = v-goods[num]["price"]
31                                 good_list.append(goods[num]["name"])
32                                 print("您成功购买的商品为:%s" % good_list)
33                                 print ("您现在总资产为:%d" % v)
34                                 yes_no=str(input("如需继续购买请输入yes|y,否则请输入其他进行退出:\t"))
35                                 if yes_no =="yes" or yes_no=="Yes" or yes_no=="Y" or yes_no=="y":
36                                         pass
37                                 else:
38                                         break
39                         else:
40                                 print ("账户余额不足!")
41                                 break
42                 else:
43                         print("请输入商品范围内的序号!")
View Code

 

 《三》用户交互,显示省市县三级联动的选择
        
            dic = {
                "河北": {
                    "石家庄": ["鹿泉", "藁城", "元氏"],
                    "邯郸": ["永年", "涉县", "磁县"],
                }
                "河南": {
                    ...
                }
                "山西": {
                    ...
                }
            }

 

 1 #!/usr/bin/env python
 2 # -*- utf-8 -*-
 3 dic_list = {
 4         "河北":{
 5                 "石家庄":["鹿泉","藁城","元氏"],
 6                 "邯郸":["永年","涉县","磁县"],
 7         },
 8         "河南":{"郑州":["中原","登封","金水"],
 9                 "洛阳":["西工","洛龙","宜阳"],
10         },
11         "山西":{"太原":["迎泽","小店","阳曲"],
12                 "大同":["矿区","郊区","平定"],
13         },
14 }
15 a={}
16 b=0
17 dic_city = input("请输入需要查看的省市名称:").strip()
18 for dic_key,dic_val in dic_list.items():
19         if dic_city in dic_key:
20                 for city_key,city_val in dic_val.items():
21                         print ("\t",city_key)
22                         b=1
23         else:
24                 for city_key,city_val in dic_val.items():
25                         if dic_city in city_key:
26                                 for city_key in dic_val[dic_city]:
27                                         print ("\t",city_key)
28                                         b=1
29                         else:
30                                 for list_key in city_val:
31                                         if dic_city in list_key:
32                                                 print("\t",dic_city)
33                                                 b=1
34                                         else:
35                                                 pass
36 if b == 0:
37         print ("没有您所输入的城市!")
View Code

 

 《四》基于文件存储的用户登录程序(3次登录失败,锁定用户)

login.py

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 
 5 data_list =[]
 6 new_data = []
 7 data_new_list=[]
 8 f = open('db','r')
 9 data_r=f.read()
10 f.close()
11 
12 data=data_r.strip()
13 data_list = data.split('\n')
14 for i in data_list:
15         n=i.split('|')
16         v={
17                 "name":n[0],
18                 "pwd":n[1],
19                 "times":n[2]
20         }
21         data_new_list.append(v)
22 a = 0
23 while True:
24     l_name=input("请输入用户名:").strip()
25     for r_key in data_new_list: #遍历列表,逐条读取数据
26         times_num=int(r_key["times"])
27         if l_name == r_key["name"]:
28             a = 1
29             if times_num > 3:
30                 print("输入的密码超过三次已经被锁定,请联系管理员进")    
31                 break
32             l_pwd = str(input("请输入密码:")).strip()
33             if l_pwd == r_key["pwd"]:
34                 print("欢迎 %s 登录!" % l_name)
35                 r_key["times"]= '0'
36             #    print (r_key["times"])
37             else:
38                 print("密码错误,请重新输入!")
39                 times_num += 1
40                 r_key["times"]=str(times_num)
41                 if times_num > 3:
42                     print("输入的密码超过三次已经被锁定,请联系管理员进行解锁!")
43                     break
44             #    print (times_num)
45     if a == 0:
46         print ("用户不存在!")
47         print("请重新登录!")
48     go_on = input("继续请输入Y|y|yes,否则请输入其他:").strip()
49     if go_on == "Y" or go_on == "y" or go_on == "yes":
50         pass
51     else:
52         break
53 while True:
54     n = input("是否要进管理模式(y|yes),否则请输入其他:")
55     if n == "y" or n == "yes":
56         super_n = input("请输入管理员帐号:").strip()
57         if super_n == "superadmin":
58             super_pwd = input("请输入管理员密码:").strip()
59             if super_pwd == "1qaz":
60                 user_name = input("请输入需要重置的用户名:").strip()
61                 for i in data_new_list:
62                     if i["name"]== user_name:
63                         i["times"] = "0"
64                         print("操作成功,请退出!")
65                         break
66                     else:
67                         print("没有该用户!")
68             else:
69                 print("密码错误!")
70         else:
71             print("账号错误!")
72     else:
73         break
74 for i  in data_new_list:
75     new_data.append(i["name"]+"|"+i["pwd"]+"|"+i["times"])
76 
77 f = open('db','w')
78 for i in new_data:
79     f.write(i)
80     f.write("\n")
81 f.close()
View Code

 

 

db文件:

alex|123123|3
eric|123456|0

 

posted @ 2017-05-03 10:06  冠彭  阅读(107)  评论(0)    收藏  举报