999-Python-练习题

1、登录接口练习题

 

 1 Readme = open('Readme.txt,'w')
 2 
 3 Readme.write('''该代码为登录系统的小Demo,还有很多不完善的地方。
 4 主要功能如下:
 5 登录成功,打印欢迎消息;失败三次,锁定用户(目前只能锁定第三次输入错误的账户,未能实现同一账户输入错误三次才锁定的功能)
 6 
 7 ''')
 8 
 9 Readme.close()  #关闭文件
10  
11 #生成用户信息文件
12 user_account = open('user_account.txt','w')
13  
14 user_account.write('''zhangsan zhangsan
15 alex alex
16 eric eric
17 ''')
18  
19 user_account.close()  #关闭文件
20 
21 #生成空的黑名单文件
22 lock_account = open('lock_account.txt','a')  #这里不能用'w',否则每次重新运行程序后,之前存储的黑名单用户会被格式化。
23 
24 lock_account.close()  #关闭文件
25 
26 
27 count = 3  #最大尝试次数
28 retry = 1 #当前尝试次数
29  
30 while retry <= count :  #尝试次数不超过最大尝试次数进入while循环
31     Username = input("请输入用户名: “).strip().lower()   #去掉空格和不区分大小写
32 
33 #输入用户名后先进入黑名单判断
34     blacklists = open('lock_account.txt','r')     #打开黑名单用户文件
35     locked_users = blacklists.readlines()  #按行读取,结果为列表
36        
37     tmp_lockusers = []  #该列表用来存放去掉空格后的字符串
38     for lock_user in locked_users:  #取出列表元素
39         tmp_lockusers.append(lock_user.rstrip()) #元素去掉空格后放入新列表 
40     if Username in tmp_lockusers:
41         print("你的用户已被锁定,请联系管理员处理。")
42         continue
43     
44     blacklists.close()  #关闭文件
45    
46     if len(Username) == 0:  #检查输入是否为空
47         print("输入不能为空,请重新输入。")
48         continue
49 
50     Password = input("请输入密码: ”).strip()  #让用户输入密码
51     flag = False
52 
53     whitelists = open('user_account.txt','r')   #打开白名单用户文件
54     normal_users = whitelist.readlins()  #按行读取,结果为列表
55      
56     for normal_user in normal_users:
57         user,pwd = normal_user.rstrip().split()  #取出的元素为用户名和密码,要将其分割,分别赋值给两个变量
58         if user == Username  and pwd == Password:
59             print("欢迎%s登录系统。" %(Username.title())
60             flag = True
61             break  #跳出当前for循环
62      
63     whiltelists.close()  #关闭文件
64  
65     if flag = True:
66         break  #跳出while循环
67     else:
68         if retry < 3:  #当第三次尝试错误后,不打印该消息
69             print("用户名或密码输入错误,请重新输入。剩余重试次数%d" %(count-retry))
70         retry += 1
71 else:  #即尝试次数大于三次后
72     print("用户尝试次数过多,已被锁定!")
73  
74     new_lock = open('lock_account.txt','a')  #这里不能用'w'模式,否则会格式化之前保存的黑名单用户
75    
76     new_lock.write(' '.join(['\n',Username])  #用户名(换行)写入黑名单
77 
78     new_lock.close()  #关闭文件
View Code

 

2、购物车练习题

 

 1 Goods_List = [ ('Iphone',5888),
 2                ('MacBook Pro',18888),
 3                ('Coffee',38),
 4                ('Python Book',88),
 5                ('Bicycle',888),
 6         ]
 7 
 8 TMP_Cart = []  #临时购物车
 9 Shopping_Cart = []  #购物车
10 Payed = []  #购物的总花费
11 
12 
13 User_Money = input("你有多少钱?")
14 
15 if User_Money.isdigit():
16     User_Money = int(User_Money)
17     if User_Money > 0:
18         while True:
19             print("下面是商品列表:")
20             for index,item in enumerate(Goods_List,1):
21                 #print(Goods_List.index(item),item)
22                 print(index,item)
23             User_Select = input("请选择要买商品的序列号:")
24             if User_Select.isdigit():
25                 User_Select = int(User_Select)
26                 if User_Select <= len(Goods_List) and User_Select >= 1:
27                     TMP_Select = Goods_List[User_Select-1]  #获取用于选择的商品信息
28                     if TMP_Select[1] <= User_Money: #获取商品价格,和用户的钱进行对比
29                         TMP_Cart.append(TMP_Select)
30                         User_Money -= TMP_Select[1]  #扣钱
31                         print("添加%s成功,还剩\033[31;1m%d\033[0m元" %(TMP_Select,User_Money))
32                     else:
33                         print("你个穷B,钱不够买毛线!")
34                         Recharge_Choice = input("要充值吗?输入N为不充值,输入其它任意键进行充值:").lower()
35                         if Recharge_Choice == 'n':
36                             print("穷屌!")
37                         else:
38                             Recharge_amount = input("请输入你要充值的金额:")
39                             if Recharge_amount.isdigit():
40                                 Recharge_amount = int(Recharge_amount)
41                                 if Recharge_amount > 0:
42                                     User_Money += Recharge_amount
43                                     print("充值成功!当前余额为\033[31;1m%d\033[0m元" %User_Money)
44                                 else:
45                                     print("没钱就不要捣乱,Fuck off!")
46                             else:
47                                 print("输入错误!请输入正确的充值金额。")
48                 else:
49                     print("输入错误,请重新输入。")
50             elif User_Select == 'q':
51                 for Cart in TMP_Cart:
52                     Shopping_Cart.append(Cart[0])
53                     Payed.append(Cart[1])
54                 print("你已购买如下产品:")
55                 for index,Goods in enumerate(Shopping_Cart,1):
56                     print(index,Goods)
57                 print("当前余额\033[31;1m%d\033[0m元" % User_Money)
58                 break
59             else:
60                 print("输入错误,请重新输入!")
61     else:
62         print("你个穷屌!钱都没有买毛?滚蛋")
63 else:
64     print("输入错误,请重新输入!")
View Code

 

3、三级菜单练习题

 

  1 menu = {
  2     '北京':{
  3         '海淀':{
  4             '五道口':{
  5                 'soho':{},
  6                 '网易':{},
  7                 'google':{}
  8             },
  9             '中关村':{
 10                 '爱奇艺':{},
 11                 '汽车之家':{},
 12                 'youku':{},
 13             },
 14             '上地':{
 15                 '百度':{},
 16             },
 17         },
 18         '昌平':{
 19             '沙河':{
 20                 '老男孩':{},
 21                 '北航':{},
 22             },
 23             '天通苑':{
 24                 '神州租车':{},
 25             },
 26             '回龙观':{
 27                 '北京华联':{},
 28             },
 29         },
 30         '朝阳':{
 31             '朝阳门':{},
 32             '朝阳群众':{},
 33         },
 34     },
 35     '上海':{
 36         '闵行':{
 37             "人民广场":{
 38                 '炸鸡店':{},
 39             }
 40         },
 41         '闸北':{
 42             '火车战':{
 43                 '携程':{},
 44             }
 45         },
 46         '浦东':{
 47             '广场':{
 48                 '七天':{},
 49             },
 50         },
 51     },
 52     '山东':{
 53         '济南':{
 54             '海边':{
 55                 '大排档':{},
 56             }
 57         },
 58         '青岛':{
 59             '海边':{
 60                 '海鲜':{},
 61             }
 62         },
 63     },
 64 }
 65 
 66 
 67 
 68 while True:
 69     quit_flag = True  # 该标志位用来判断循环是否可以继续,不能作为全局变量。否则在该值变化后,永久成为false,不能再次进入二层循环。
 70 
 71     for key1 in menu:  #取出一级菜单(省)
 72         print(key1)
 73     User_Choice1 = input("请选择要查看的省份,或输入'exit'退出程序:").strip()
 74     if User_Choice1 in menu:
 75         while quit_flag:
 76             for key2 in menu[User_Choice1]:  #取出二级菜单(省或直辖市)
 77                 print('\t',key2)
 78             User_Choice2 = input("请选择要查看的城市或地区,或输入'b'返回上一级:").strip()
 79             if User_Choice2 == 'b':
 80                 break
 81             elif User_Choice2 in menu[User_Choice1]:
 82                 while quit_flag:
 83                     for key3 in menu[User_Choice1][User_Choice2]:  #取出三级菜单
 84                         print('\t\t',key3)
 85                     User_Choice3 = input("请选择要查看的地名(输入'b'返回上一级,'q'退回到第一级):").strip()
 86                     if User_Choice3 == 'b':
 87                         break
 88                     elif User_Choice3 == 'q':
 89                         quit_flag = False
 90                     elif User_Choice3 in menu[User_Choice1][User_Choice2]:
 91                         while quit_flag:
 92                             for key4 in menu[User_Choice1][User_Choice2][User_Choice3]:  #取出最后一级
 93                                 print('\t\t\t',key4)
 94                             User_Choice4 = input("已经到底了(输入'b'返回上一级,'q'退回到第一级)!").strip()
 95                             if User_Choice4 == 'b':
 96                                 break
 97                             elif User_Choice4 == 'q':
 98                                 quit_flag = False
 99                     else:
100                         print("输入的%s不存在,请重新输入!" %User_Choice3)
101             else:
102                 print("输入的%s不存在,请重新输入!" %User_Choice2)
103     elif User_Choice1 == 'exit':
104         print("慢走不送!")
105         break
106     else:
107         print("输入的%s不存在,请重新输入!" %User_Choice1)
View Code

 

posted @ 2017-10-26 00:03  Druid_Py  阅读(202)  评论(0编辑  收藏  举报