练习题(一)
《一》元素分类
有如下值集合 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)
《二》功能要求:
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("请输入商品范围内的序号!")
《三》用户交互,显示省市县三级联动的选择
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 ("没有您所输入的城市!")
《四》基于文件存储的用户登录程序(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()
db文件:
alex|123123|3
eric|123456|0

浙公网安备 33010602011771号