1. username_list = []
  2. prize_dict = {
  3. '0': "芭比娃娃",
  4. '1': "变形金刚",
  5. '2': "psp游戏机",
  6. '3': "奥特曼",
  7. '4': "遥控飞机",
  8. '5': "chongqiwawa",
  9. }
  10. shopping_car_dict = {}
  11. def inp_username_pwd():
  12. username_inp = input('请输入你的用户名:')
  13. pwd_inp = input('请输入你的密码:')
  14. return username_inp, pwd_inp
  15. def login():
  16. print('欢迎来到登录功能')
  17. if username_list:
  18. print('已经登录,请勿重复登录')
  19. return
  20. count = 0
  21. while count < 3:
  22. username_inp, pwd_inp = inp_username_pwd()
  23. with open('user_info.txt', 'r', encoding='utf8') as fr:
  24. for user_info in fr:
  25. user_info = user_info.strip()
  26. username, pwd = user_info.split(':')
  27. if username == username_inp and pwd == pwd_inp:
  28. print('登录成功')
  29. username_list.append(username_inp)
  30. return
  31. else:
  32. print('账号密码错误')
  33. count += 1
  34. def register():
  35. print('欢迎来到注册功能')
  36. username_inp, pwd_inp = inp_username_pwd()
  37. with open('user_info.txt', 'a', encoding='utf8') as fa:
  38. fa.write(f'{username_inp}:{pwd_inp}\n')
  39. def logout():
  40. print('欢迎来到注销功能')
  41. if not username_list:
  42. print('请登录后使用该功能')
  43. return
  44. username_list.clear()
  45. def shopping():
  46. print('欢迎来到Nick集团消费功能')
  47. if not username_list:
  48. print('请登录后使用该功能')
  49. return
  50. print('''
  51. 0 芭比娃娃
  52. 1 变形金刚
  53. 2 psp游戏机
  54. 3 奥特曼
  55. 4 遥控飞机
  56. 5 chongqiwawa
  57. ''')
  58. prize_choice = input('请输入你需要购买的商品编号:')
  59. prize_name = prize_dict[prize_choice]
  60. if prize_name in shopping_car_dict:
  61. shopping_car_dict[prize_name] += 1
  62. else:
  63. shopping_car_dict[prize_name] = 1
  64. print(f'消费成功{prize_name},当前购物车情况为{shopping_car_dict}')
  65. def shopping_car():
  66. print('恭喜剁手成功功能')
  67. if not username_list:
  68. print('请登录后使用该功能')
  69. return
  70. print(f'恭喜你购物成功:{shopping_car_dict}')
  71. shopping_car_dict.clear()
  72. func_dict = {
  73. '1': login,
  74. '2': register,
  75. '3': logout,
  76. '4': shopping,
  77. '5': shopping_car,
  78. }
  79. while True:
  80. print('''
  81. 1 登录
  82. 2 注册
  83. 3 注销
  84. 4 购物
  85. 5 购物车
  86. q 退出
  87. ''')
  88. func_choice = input('请选择你要选择的功能(输入q退出):')
  89. if func_choice == 'q':
  90. break
  91. if func_choice not in func_dict:
  92. print('傻逼,英文看不懂正常,还看不懂阿拉伯数字')
  93. continue
  94. func_dict[func_choice]()

函数基础实战之ATM和购物车系统的更多相关文章

  1. 模块基础实战之ATM和购物车系统分文件处理

    目录 一.项目地址 二.功能需求 一.项目地址 https://github.com/nickchen121/atm 二.功能需求 FUNC_MSG = { '0': '注销', '1': '登录', ...

  2. 函数高级实战之ATM和购物车系统升级

    一.项目 二.项目地址 https://github.com/nickchen121/atm 三.功能需求 FUNC_MSG = { '0': '注销', '1': '登录', '2': '注册', ...

  3. Python常用模块实战之ATM和购物车系统再升级

    目录 一.项目地址 二.功能需求 一.项目地址 https://github.com/nickchen121/atm 二.功能需求 FUNC_MSG = { '0': '注销', '1': '登录', ...

  4. Python学习--------------Atm+购物车系统

    一.程序需求 模拟实现一个ATM + 购物商城程序: 1.额度 15000或自定义 2.实现购物商城,买东西加入 购物车,调用信用卡接口结账 3.可以提现,手续费5% 4.每月22号出账单,每月10号 ...

  5. ATM系统和购物车系统 不需要文件支撑

    目录 ATM系统 购物车系统 ATM系统 #coding=utf8 #Version:python 3.6.4 #Tools:Python 2019.9.7 _data_ = '2019/9/7/01 ...

  6. MySQL的初次见面礼基础实战篇

    [版权申明] http://blog.csdn.net/javazejian/article/details/61614366 出自[zejian的博客] 关联文章: MySQL的初次见面礼基础实战篇 ...

  7. Linux Capabilities 入门教程:基础实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 待续... 上篇文章介绍了 Linux capabilit ...

  8. Capabilities 入门教程:基础实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 待续... 上篇文章介绍了 Linux capabilit ...

  9. Nodejs入门级基础+实战

    这篇随笔将会按序记录如下内容: NodeJs 简介 安装  NodeJs HTTP 模块.URL 模块 CommonJs 和 Nodejs 中自定义模块 NodeJs FS 模块 利用 HTTP 模块 ...

随机推荐

  1. 如何使ElementUi中的el-dropdown传入多参数

    这边因为业务的需求,觉得随着产品中心以后需要按钮的增多(图1操作栏的效果),这样会导致排版和按钮过于冗长的问题,用户体验不佳,于是想到利用el-dropdown做一个下拉按钮(图1操作1栏的效果) . ...

  2. 《推送开发全面盘点当前Android后台保活方案的真实运行效果》

        登录 立即注册 TCP/IP详解 资讯 动态 社区 技术精选 首页   即时通讯网›专项技术区›推送开发全面盘点当前Android后台保活方案的真实运行效果(截止2 ...   帖子 打赏 分 ...

  3. Codeforces Round #607 (Div. 1)

    A. Cut and Paste 题解 在计算答案的时候,我们发现只需要知道这个字符串前\(l\) 个具体是啥就行了.所以对于每一组询问,我们暴力把这个字符串前\(l\) 的位都算出来,然后剩下的就推 ...

  4. java中的this、super、static、final、abstract关键字的作用

    this关键字的作用 1.this是对象内部指代自身的引用,同时也是解决成员变量和局部变量同名问题: 2.this可以调用成员变量,不能调用局部变量: 3.this也可以调用成员方法,但在普通方法中可 ...

  5. aop分层模型——aop是元编程的一种

    织入应用层—->待织入的附加功能 应用层 织入管理层—->使用元语和织入的功能进行编程 语言层 aop元语层---〉aop机制提供的高阶抽象概念. 解释层 aop引擎层—->维护的实 ...

  6. goweb-http协议

    先链接到一个我的另一篇有关HTTP的博客 第一次访问时会有些慢~~~ http协议 因为编写 Web 应用必须对 HTTP 有所了解,所以我们对 HTTP 进行介绍 HTTP 协议简介 HTTP 超文 ...

  7. 池化HttpClient,拿去就能用

    import lombok.extern.slf4j.Slf4j; import org.apache.http.HttpEntity; import org.apache.http.HttpResp ...

  8. SQLi-LABS Page-1(Basic Challenges) Less11-Less22

    Less-11 GET - Blind - Time based - double quotes http://10.10.202.112/sqli/Less-11/ 尝试登录: username:a ...

  9. arcgis api 4.x for js 地图加载多个气泡窗口展示(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 4.x for js:esri 官网 api,里面详细的介绍 arcgis api 4.x 各个类 ...

  10. Rewrite基本概述

    Rewrite基本概述 什么是rewrite Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程. rewrite使用场景 1.地址跳转,用户访问www. ...