一、概述

  此程序示例为博主根据路飞学城的python的作业而写的(博主也是python初学者,仅花了99元报了路飞学城的python入门14天集中营3期网络课堂班),此程序非常适合python初学者拿来联系,下面粘贴3个示例供大家参考学习

二、程序示例

一、简易登陆程序

1、需求说明

  程序启动,用户输入用户名和密码,如果输入正确,正登陆成功

  输入的用户名不存在,则提示用户注册

  允许用户输入密码3次错误,当超过3次后,则锁定改用户。

  下次重新运行程序,如果用户被锁定,则不允许登陆

2、相关代码

  1. # 用户信息格式
  2. # users = {'zhangsan':['张三','123','24',1],'lisi':['李四','456','24',1],'wangwu':['王五','789','24',0]}
  3. import pickle
  4. # 注册用户
  5. def regist():
  6. username = input('请填写登陆账号>>')
  7. pwd = input('请填写登陆密码>>')
  8. nickname = input('请填写昵称>>')
  9. age = input('请填写年龄>>')
  10. users[username] = [nickname,pwd,age,1]
  11. f = open('user.pkl','wb')
  12. pickle.dump(users,f)
  13. f.close()
  14. print('注册成功')
  15.  
  16. # 锁定用户
  17. def lockUser(users,username):
  18. users[username][3] = 0
  19. f = open('user.pkl','wb')
  20. pickle.dump(users,f)
  21. f.close()
  22.  
  23. # 解锁用户(暂时未用到)
  24. def unLockUser(username):
  25. fr = open('user.pkl','rb')
  26. users = pickle.load(fr)
  27. users[username][3] = 1
  28. fw = open('user.pkl','wb')
  29. pickle.dump(users,fw)
  30. fw.close()
  31.  
  32. # ----------begin---------------------
  33. try:
  34. fi = open('user.pkl','rb')
  35. except FileNotFoundError:
  36. f = open('user.pkl','wb')
  37. pickle.dump({},f)
  38. f.close()
  39.  
  40. count = 1
  41. flag = True
  42. while(True):
  43. if(flag):
  44. name = input('请输入您的用户名:')
  45. falg = False
  46. password = input('请输入您的密码:')
  47. f = open('user.pkl','rb')
  48. users = pickle.load(f)
  49. if(users.get(name) == None ):
  50. print('该用户还未被注册,是否现在注册?y/n')
  51. if(input() == 'y'):
  52. # 注册用户
  53. regist()
  54. result = input('是否立即登陆?y立即登陆;n退出')
  55. if(result == 'n'):
  56. break
  57. else:
  58. flag = True
  59. else:
  60. break
  61. elif(users.get(name)[3] == 0):
  62. print('该账号已经被锁定,请联系管理员进行解锁!')
  63. break
  64. elif(users.get(name)[1] != password):
  65. if(count == 3):
  66. # 锁定用户
  67. lockUser(users,name)
  68. print('密码三次输入错误,已经锁定该账号,请联系管理员进行解锁')
  69. break
  70. else:
  71. print('密码不正确','还有',str(3-count),'次输入的机会!')
  72. count += 1
  73. flag = False
  74. else:
  75. print('登陆成功!')
  76. break
  77. # --------------end------------------------

二、简易购物车程序

1、需求说明

  启动程序后让用户输入工资,然后打印商品列表

  允许用户根据商品编号来添加商品

  用户添加商品后,检测余额是否充足,如果不充足则提示,充足直接扣款

  用户可以一直购买商品,也可以随时退出,退出时打印购买的商品和余额

2、相关代码

  1. goods = {'':['优衣库裤子',499],'':['小米手机',2499],'':['iPhone7',4199],'':['联想电脑',4999],'':['智力车厘子',36],'':['python从入门到放弃',79]}
  2. buyCart = []
  3. try:
  4. money = int(input('请输入您的金额:'))
  5. except ValueError:
  6. print('请输入正确的金额格式')
  7. exit()
  8. print('-----------商品列表---------------')
  9. print('商品编号 名称 价格')
  10. for item in goods:
  11. s = '%s \t%s \t%d' % (item,goods.get(item)[0],goods.get(item)[1])
  12. print(s)
  13. while(True):
  14. goodsNO = input('\n请选择要添加的商品编号:')
  15. if(goodsNO not in goods):
  16. print('\n选择的商品编号不存在,请重新选择!')
  17. continue
  18. if(goods.get(goodsNO)[1] > money):
  19. print('\n金额不足,无法添加该商品!')
  20. else:
  21. buyCart.append(goodsNO)
  22. s = '%s \t%s \t%d' % (it
  23. money = money - goods.get(goodsNO)[1]
  24. print('\n当前余额为%d' % money)
  25. yn = input('\n是否继续添加商品?退出输入n,继续按其他任意键:'
  26. if(yn) == 'n'):
  27. print('\n\n-------已购买的商品----------')
  28. print('商品编号 名称 价格')
  29. for item in buyCart:em,goods.get(item)[0],goods.get(item)[1])
  30. print(s)
  31. print('\n余额为:' + str(money))
  32. break

三、简易多级菜单程序

1、需求说明

  多级菜单的查看

  要求程序启动后,用户可以一次选择进入各子菜单

  可以在任意一级返回上一级

  可以在任意一级菜单退出程序

  输入‘dir’来查看当前菜单下的子菜单,输入‘cd ..’返回上一级目录,输入‘cd /’返回一级菜单,输入‘path’查看当前菜单路径,输入‘quit’来退出程序

2、相关代码

  1. menu = {
  2. '北京':{
  3. '海淀':{'五道口':{'soho':{},'google':{}},'中关村':{'爱奇艺':{},'汽车之家':{}},'上地':{'百度':{},'联想':{}}},
  4. '昌平':{'回龙观':{'新浪':{},'网易':{}},'东小口':{'中科软':{},'中软':{}},'朱辛庄':{'智联':{},'拉钩':{}}},
  5. '朝阳':{'三里屯':{'太极华青':{},'北京云财':{}},'国贸':{'北京华志信':{},'北京伟业前程':{}},'望京':{'北京佰加星':{},'北京智达方通':{}}}
  6. },
  7. '上海':{
  8. '浦东':{'金桥':{'上海求步':{},'上海驰亚':{}},'合庆':{'中国电信':{},'上海顶通':{}}},
  9. '虹口':{'江湾':{'上海伦伟':{},'上海津腾':{}},'提篮桥':{'上海芒橙':{},'上海直达':{}}}
  10. },
  11. '广州':{
  12. '黄埔':{'板桥':{'恒大地产':{},'广州市蒲公英':{}},'官洲':{'广州动点网络':{},'广州玖维':{}}},
  13. '海珠':{'客村':{'广州海度':{},'广州艾秀':{}},'新港':{'广州优识':{},'广州合光':{}}}
  14. }
  15. }
  16. print('您可以输入‘dir’来查看当前菜单下的子菜单,输入‘cd ..’返回上一级目录,输入‘cd /’返回一级菜单,输入‘path’查看当前菜单路径,输入‘quit’来退出程序\n')
  17. level = 0 #当前数据项的级别,比如北京为1级
  18. menus = [menu] #存储当前从0-5级的各级的字典‘
  19. path = [] #存放当前菜单路径
  20. while(True):
  21. value = input('>>')
  22. if(value == 'dir'):
  23. print(list(menus[level]))
  24. elif(value == 'cd ..'): #返回上级
  25. if(level > 0):
  26. level -= 1
  27. menus.pop()
  28. path.pop()
  29. elif(value == 'cd /'): #返回根路径
  30. menus = [menu]
  31. level = 0
  32. path = []
  33. elif(value == 'quit'): #退出
  34. break
  35. elif(value == 'path'): #查看当前菜单路径
  36. paths = ''
  37. for item in path:
  38. paths = paths + '-' + item
  39. print(paths[1:])
  40. elif(value.startswith('cd ')): #进入输入的下一级菜单
  41. value = value[3:]
  42. if(value not in menus[level]):
  43. print('找不到当前项下的子菜单',value)
  44. else:
  45. level += 1
  46. menus.append(menus[level-1][value])
  47. path.append(value)
  48. else:
  49. print('不是查看菜单的命令')

初学pyhon的几个练习小程序的更多相关文章

  1. 小程序——微信小程序初学踩过的坑

    微信小程序初学踩过的坑 一.前言     最近因为某些需要和个人兴趣打算开发一下微信小程序,经过在官方网站上的基本了解,我大体知道了微信小程序开发的大致过程,其实最本质的就是MVVM,借用了很多模式上 ...

  2. 初学微信小程序

    最近微信推出了微信小程序,为此我学了几天,基本了解了组件及简单语法,但是今天我自己想要独立写一个demo时,忽然发现难道我的不是微信小程序的语法(我以前是iOS 开发,不用css),而是css样式的设 ...

  3. 初学微信小程序 TodoList

    微信小程序的学习 微信小程序的开始尝试 TodoList 微信开发者工具生成 目录如下: . |-- app.js |-- app.json |-- app.wxss |-- pages | |-- ...

  4. 初学微信小程序——配置问题(1)

    一.注册: 微信小程序账号注册:登录https://mp.weixin.qq.com  点击“立即注册”->”小程序” 注册完成后,下载微信小程序开发者工具: 依次点击:“首页”->“文档 ...

  5. 【python】——小程序之电话薄

    初学python,写一个小程序练习一下.主要功能就是增删改查的一些功能.主要用到的技术:字典的使用,pickle的使用,io文件操作.代码如下: import pickle #studentinfo ...

  6. 《微信小程序七日谈》- 第四天:页面路径最多五层?导航可以这么玩

    <微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩 微信小 ...

  7. 《微信小程序七日谈》- 第二天:你可能要抛弃原来的响应式开发思维

    <微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩 上篇文 ...

  8. 《微信小程序七日谈》- 第一天:人生若只如初见

    <微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩 微信小 ...

  9. 《微信小程序七日谈》- 第五天:你可能要在登录功能上花费大力气

    <微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩: 第五 ...

随机推荐

  1. python 小练习题做起来

    1# 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并# (按字母顺序排列), 输出到一个新文件C中.with open('a') as f1: a=f1.read()with op ...

  2. 带logo图片或不带logo图片的二维码生成与解析,亲测成功

    最近公司需要实现二维码功能,本人经过一顿百度,终于实现了,因有3个功能:不带logo图片.带logo图片.解析二维码,篇幅较长,请耐心读之,直接复制粘贴即可. 前提:myeclipse10:jar包: ...

  3. ABP学习笔记(1)-使用mysql

    前言 开始学习ABP啦 下载官方模板 ​ 下载地址: https://aspnetboilerplate.com/Templates ​ 我这边选择的是.NET Core+VUE 移除SqlServe ...

  4. javascript深入浅出图解作用域链和闭包

    一.概要 对于闭包的定义(红宝书P178):闭包就是指有权访问另外一个函数的作用域中的变量的函数. 关键点: 1.闭包是一个函数 2.能够访问另外一个函数作用域中的变量 文章首发地址于sau交流学习社 ...

  5. java游戏开发杂谈 - 界面刷新、坐标系

    之前几篇博客里的例子,大家运行过的话,就能看出来,界面是需要刷新的. JPanel里的绘制方法是paintComponent,界面上的东西都是这个方法画出来的. JPanel对象有一个repaint方 ...

  6. 学习CSS3之实心圆

    CSS3是最新版本的CSS,学习后可以更好的用于工作及自己修改自己代码的各种样式. border-radius圆角方法画实心圆.相当于在长方形(正方形)上画半径为边长一半的圆弧. 效果如上图,代码如下 ...

  7. SSM框架视频资料

    SSM框架视频资料 进行过 Java Web 项目开发的同学,可能都知道 SSM 框架,即 Spring + SpringMVC + Mybatis .很多项目的主体框架都是采用这种模式,这也是 Ja ...

  8. Cookie、LocalStorage 与 SessionStorage的区别在哪里?

    基本概念 Cookie Cookie 是小甜饼的意思.顾名思义,cookie 确实非常小,它的大小限制为4KB左右.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通 ...

  9. Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮

    前言 之前写过屏蔽系统导航栏功能的文章,具体可看Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP)/动态显示和隐藏NavigationBar 在某些特殊定制的版本中要求 ...

  10. Windows Server 2016-Windows 时间服务概览

    同步 Windows 时间服务 (W32Time) 的日期和时间的所有运行 Active Directory 域服务 (AD DS) 的计算机. 时间同步至关重要的许多 Windows 服务和的业务线 ...