标签:lis bin 用户名 with nbsp price 代码 linu coding
要求:
打印省、市、县三级菜单
可返回上一级
可随时退出程序
data={‘黑龙江省‘:{‘哈尔滨‘:[‘尚志县‘,‘南山县‘,‘北山县‘,‘东山县‘,‘西山县‘], ‘大庆‘:[‘萨尔图区‘,‘东西县‘,‘南北先‘], ‘齐齐哈尔‘:[‘通州县‘,‘朝阳县‘,‘西城县‘,‘昌平县‘]}, ‘山西省‘:{‘太原‘:[‘到‘,‘此‘,‘结‘,‘束‘], ‘大同‘:[‘某县‘,‘丰台县‘,‘漳州县‘,‘灵境县‘,‘莘庄县‘]}, ‘河北省‘:{‘邯郸市‘:[‘广平县‘,‘魏县‘,‘衢州县‘,‘成安县‘,‘大明县‘], ‘石家庄‘:[‘天真县‘,‘浪漫县‘,‘前列县‘,‘侄女县‘,‘乐吧县‘]} } while True: count = True for i in data.keys(): print(i) user_info = input(‘\n"q"退出程序\n输入省 >> ‘).strip() if user_info==‘q‘:exit() if user_info in data.keys(): abc=data[user_info].keys() while count: print(list(abc)) users_info = input("\n‘q‘退出程序,‘r‘返回上一级\n输入需要查询的市 >> ").strip() if users_info==‘q‘:exit() if users_info in data[user_info]: print(data[user_info][users_info]) sur=input(‘\n返回上一级"y",任意键退出 # ‘) if sur == ‘y‘:continue else:exit() elif users_info == ‘r‘: count=False continue else:print(‘请输入正确的城市名 \n‘) else: print(‘请输入正确的城省名\n‘)
用户名和密码存放于文件中,格式为:XXX|XXX;
启动程序后,先登录;失败则重新登录,超过三次则锁定此用户;
登录成功则让用户输入工资,然后打印商品列表;
用户根据商品编号购买商品,选择购买数量;
用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒;
可随时退出,退出时,打印已购买商品和余额。
#!/usr/bin/env python #coding:utf-8 #需在脚本同目录下创建pass文件,用于存放登陆的用户名密码 例: tcc|cc123 #再在同目录下创建user空文件,用于存放锁定用户 login_record={} #用户信息表 with open(‘pass‘,‘r‘) as f: for line in f: u,p=line.strip().split(‘|‘) login_record[u]=({‘p‘:p,‘count‘:0}) # 打开存放用户名密码的文件,并倒入用户信息表 us1=open(‘user‘,‘r‘) balck_name=us1.read() us1.close() #打开并纪录黑名单用 trade_name=[ [‘iphone X ‘, 8358], [‘mac bookpro‘, 13588], [‘huiwei X‘ , 4300], [‘audi‘ , 1340000], [‘LV‘ , 35000], [‘fgj A‘ , 880], [‘LinuxBook‘ , 99], ] trade_list=[] while True: user_name=input(‘用户名 > ‘).strip() if not user_name:continue #输入为空则继续输入 if user_name in balck_name: print(‘The account!‘) break #检查该用户是否在很名单中,在则退出 elif not user_name in login_record: print(‘Without this user\n‘) continue #检查用户名是否存在 if user_name in login_record : user_pass = input(‘密码 > ‘) if user_pass == login_record[user_name][‘p‘]: while True: user_money=input(‘您的本金 > ‘).strip() if user_money.isdigit(): user_money=int(user_money) break else:print(‘请正确输入金额!‘) while user_money > 0: count=True print(‘欢迎来到CC商场‘.center(30,‘~‘)) for key,vl in enumerate(trade_name,1): print (key,‘{0}\t:\t{1}‘.format(vl[0],vl[1])) print(‘出售中的商品‘.center(30, ‘~‘)) user_in=input(‘输入购买商品的序号,"q"退出 > ‘).strip() if user_in.isdigit() and len(user_in)==1 and int(user_in)<=len(trade_name): user_in=int(user_in)-1 user_trade = trade_name[user_in] #获取商品 while count: u_trade_num = input(‘\n(返回请按"r",退出请按"q") 数量 > ‘).strip() if u_trade_num.isdigit(): trade_price = trade_name[user_in][1] * int(u_trade_num) while count: if user_money >= trade_price: user_money = user_money - trade_price trade_list.append(user_trade) print(‘购物车{c},余额{y}‘.format(y=user_money, c=trade_list)) count=False continue else: print(‘余额不足!‘) else: print(‘\n请正确输入您购买的数量!\n‘) elif user_in in ‘q‘:print(‘欢迎下次光临!‘),exit() else: print(‘\n请输入正确的序号!\n‘) else: print(‘别玩了,没钱了!‘) else: login_record[user_name][‘count‘]+=1#打开并纪录黑名单用 print(‘用户名或密码错误‘) # 密码每一次输入错误都纪录 if login_record[user_name][‘count‘] > 3: print(‘超过最大次数,请联系管理员‘) record = open(‘user‘, ‘a‘) record.write(‘%s\t‘ %user_name) record.close() exit() #密码错误大于三次后退出程序并锁定该用户
标签:lis bin 用户名 with nbsp price 代码 linu coding
原文地址:http://www.cnblogs.com/tiancc/p/7507944.html