一、概述
此程序示例为博主根据路飞学城的python的作业而写的(博主也是python初学者,仅花了99元报了路飞学城的python入门14天*3期网络课堂班),此程序非常适合python初学者拿来联系,下面粘贴3个示例供大家参考学习
二、程序示例
一、简易登陆程序
1、需求说明
程序启动,用户输入用户名和密码,如果输入正确,正登陆成功
输入的用户名不存在,则提示用户注册
允许用户输入密码3次错误,当超过3次后,则锁定改用户。
下次重新运行程序,如果用户被锁定,则不允许登陆
2、相关代码
# 用户信息格式 # users = {'zhangsan':['张三','123','24',1],'lisi':['李四','456','24',1],'wangwu':['王五','789','24',0]} import pickle # 注册用户 def regist(): username = input('请填写登陆账号>>') pwd = input('请填写登陆密码>>') nickname = input('请填写昵称>>') age = input('请填写年龄>>') users[username] = [nickname,pwd,age,1] f = open('user.pkl','wb') pickle.dump(users,f) f.close() print('注册成功') # 锁定用户 def lockUser(users,username): users[username][3] = 0 f = open('user.pkl','wb') pickle.dump(users,f) f.close() # 解锁用户(暂时未用到) def unLockUser(username): fr = open('user.pkl','rb') users = pickle.load(fr) users[username][3] = 1 fw = open('user.pkl','wb') pickle.dump(users,fw) fw.close() # ----------begin--------------------- try: fi = open('user.pkl','rb') except FileNotFoundError: f = open('user.pkl','wb') pickle.dump({},f) f.close() count = 1 flag = True while(True): if(flag): name = input('请输入您的用户名:') falg = False password = input('请输入您的密码:') f = open('user.pkl','rb') users = pickle.load(f) if(users.get(name) == None ): print('该用户还未被注册,是否现在注册?y/n') if(input() == 'y'): # 注册用户 regist() result = input('是否立即登陆?y立即登陆;n退出') if(result == 'n'): break else: flag = True else: break elif(users.get(name)[3] == 0): print('该账号已经被锁定,请联系管理员进行解锁!') break elif(users.get(name)[1] != password): if(count == 3): # 锁定用户 lockUser(users,name) print('密码三次输入错误,已经锁定该账号,请联系管理员进行解锁') break else: print('密码不正确','还有',str(3-count),'次输入的机会!') count += 1 flag = False else: print('登陆成功!') break # --------------end------------------------
二、简易购物车程序
1、需求说明
启动程序后让用户输入工资,然后打印商品列表
允许用户根据商品编号来添加商品
用户添加商品后,检测余额是否充足,如果不充足则提示,充足直接扣款
用户可以一直购买商品,也可以随时退出,退出时打印购买的商品和余额
2、相关代码
goods = {'001':['优衣库裤子',499],'002':['小米手机',2499],'003':['iPhone7',4199],'004':['联想电脑',4999],'005':['智力车厘子',36],'006':['python从入门到放弃',79]} buyCart = [] try: money = int(input('请输入您的金额:')) except ValueError: print('请输入正确的金额格式') exit() print('-----------商品列表---------------') print('商品编号 名称 价格') for item in goods: s = '%s \t%s \t%d' % (item,goods.get(item)[0],goods.get(item)[1]) print(s) while(True): goodsNO = input('\n请选择要添加的商品编号:') if(goodsNO not in goods): print('\n选择的商品编号不存在,请重新选择!') continue if(goods.get(goodsNO)[1] > money): print('\n金额不足,无法添加该商品!') else: buyCart.append(goodsNO) s = '%s \t%s \t%d' % (it money = money - goods.get(goodsNO)[1] print('\n当前余额为%d' % money) yn = input('\n是否继续添加商品?退出输入n,继续按其他任意键:' if(yn) == 'n'): print('\n\n-------已购买的商品----------') print('商品编号 名称 价格') for item in buyCart:em,goods.get(item)[0],goods.get(item)[1]) print(s) print('\n余额为:' + str(money)) break
三、简易多级菜单程序
1、需求说明
多级菜单的查看
要求程序启动后,用户可以一次选择进入各子菜单
可以在任意一级返回上一级
可以在任意一级菜单退出程序
输入‘dir’来查看当前菜单下的子菜单,输入‘cd ..’返回上一级目录,输入‘cd /’返回一级菜单,输入‘path’查看当前菜单路径,输入‘quit’来退出程序
2、相关代码
menu = { '北京':{ '海淀':{'五道口':{'soho':{},'google':{}},'中关村':{'爱奇艺':{},'汽车之家':{}},'上地':{'百度':{},'联想':{}}}, '昌平':{'回龙观':{'新浪':{},'网易':{}},'东小口':{'中科软':{},'中软':{}},'朱辛庄':{'智联':{},'拉钩':{}}}, '朝阳':{'三里屯':{'太极华青':{},'北京云财':{}},'国贸':{'北京华志信':{},'北京伟业前程':{}},'望京':{'北京佰加星':{},'北京智达方通':{}}} }, '上海':{ '浦东':{'金桥':{'上海求步':{},'上海驰亚':{}},'合庆':{'中国电信':{},'上海顶通':{}}}, '虹口':{'江湾':{'上海伦伟':{},'上海津腾':{}},'提篮桥':{'上海芒橙':{},'上海直达':{}}} }, '广州':{ '黄埔':{'板桥':{'恒大地产':{},'广州市蒲公英':{}},'官洲':{'广州动点网络':{},'广州玖维':{}}}, '海珠':{'客村':{'广州海度':{},'广州艾秀':{}},'新港':{'广州优识':{},'广州合光':{}}} } } print('您可以输入‘dir’来查看当前菜单下的子菜单,输入‘cd ..’返回上一级目录,输入‘cd /’返回一级菜单,输入‘path’查看当前菜单路径,输入‘quit’来退出程序\n') level = 0 #当前数据项的级别,比如北京为1级 menus = [menu] #存储当前从0-5级的各级的字典‘ path = [] #存放当前菜单路径 while(True): value = input('>>') if(value == 'dir'): print(list(menus[level])) elif(value == 'cd ..'): #返回上级 if(level > 0): level -= 1 menus.pop() path.pop() elif(value == 'cd /'): #返回根路径 menus = [menu] level = 0 path = [] elif(value == 'quit'): #退出 break elif(value == 'path'): #查看当前菜单路径 paths = '' for item in path: paths = paths + '-' + item print(paths[1:]) elif(value.startswith('cd ')): #进入输入的下一级菜单 value = value[3:] if(value not in menus[level]): print('找不到当前项下的子菜单',value) else: level += 1 menus.append(menus[level-1][value]) path.append(value) else: print('不是查看菜单的命令')