username_list = []
prize_dict = {
'0': "芭比娃娃",
'1': "变形金刚",
'2': "psp游戏机",
'3': "奥特曼",
'4': "遥控飞机",
'5': "chongqiwawa",
} shopping_car_dict = {} def inp_username_pwd():
username_inp = input('请输入你的用户名:')
pwd_inp = input('请输入你的密码:') return username_inp, pwd_inp def login():
print('欢迎来到登录功能')
if username_list:
print('已经登录,请勿重复登录')
return count = 0
while count < 3:
username_inp, pwd_inp = inp_username_pwd() with open('user_info.txt', 'r', encoding='utf8') as fr:
for user_info in fr:
user_info = user_info.strip()
username, pwd = user_info.split(':') if username == username_inp and pwd == pwd_inp:
print('登录成功')
username_list.append(username_inp)
return else:
print('账号密码错误') count += 1 def register():
print('欢迎来到注册功能') username_inp, pwd_inp = inp_username_pwd() with open('user_info.txt', 'a', encoding='utf8') as fa:
fa.write(f'{username_inp}:{pwd_inp}\n') def logout():
print('欢迎来到注销功能') if not username_list:
print('请登录后使用该功能')
return username_list.clear() def shopping():
print('欢迎来到Nick集团消费功能') if not username_list:
print('请登录后使用该功能')
return print('''
0 芭比娃娃
1 变形金刚
2 psp游戏机
3 奥特曼
4 遥控飞机
5 chongqiwawa
''') prize_choice = input('请输入你需要购买的商品编号:')
prize_name = prize_dict[prize_choice] if prize_name in shopping_car_dict:
shopping_car_dict[prize_name] += 1
else:
shopping_car_dict[prize_name] = 1 print(f'消费成功{prize_name},当前购物车情况为{shopping_car_dict}') def shopping_car():
print('恭喜剁手成功功能') if not username_list:
print('请登录后使用该功能')
return print(f'恭喜你购物成功:{shopping_car_dict}') shopping_car_dict.clear() func_dict = {
'1': login,
'2': register,
'3': logout,
'4': shopping,
'5': shopping_car,
} while True:
print('''
1 登录
2 注册
3 注销
4 购物
5 购物车
q 退出
''')
func_choice = input('请选择你要选择的功能(输入q退出):')
if func_choice == 'q':
break if func_choice not in func_dict:
print('傻逼,英文看不懂正常,还看不懂阿拉伯数字')
continue 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. SAP GUI Security notice

    出现错误提示: Failed to load administrator rule file.Check your Installation. 原因: 电脑缺少MS XML4.0,导致SAP客户端无法 ...

  2. 【原】导入framework报错解决(以ReactiveObjC.framework为例)

    1.当导入ReactiveObjC.framework后,进行编译时报错:framework not found xxx 报错如下图: 解决办法:     Targets -> Build Se ...

  3. tp、tftp、nfs--服务器搭建

    服务器 1. ftp服务器 1.1检查是否安装 vsftpd -version 1.2 安装 sudo apt-get install vsftpd 1.3卸载 sudo apt-get remove ...

  4. SQL Server如何正确的删除Windows认证用户

    在SQL Server数据库中,有时候会建立一些Windows认证的账号(域账号),例如,我们公司习惯给开发人员和Support同事开通NT账号权限,如果有离职或负责事宜变更的话,那么要如何正确的删除 ...

  5. Node.js上传文件出现Unexpected field

    上传文件时,input框的name值要与node接口中single(' ')中的参数一致,否则会报"意外字段的错" 前端用的layui 后端node接口

  6. python 导入同级目录文件时报错

    当你import的时候,python解释器只会在sys.path这个变量(一个list,你可以print出来看)里面的路径中找可能匹配的package或module. 而一个package跟一个普通文 ...

  7. 2019-2020-1 20199305《Linux内核原理与分析》第七周作业

    进程的描述与创建 (一)进程的描述 (1)操作系统内核实现操作系统的三大管理功能(进程管理最为核心) 进程管理 内存管理 文件系统 (2)在Linux内中用一个数据结构struct task_stru ...

  8. 【RTOS】基于V7开发板的最新版RTX4 V4.81.1程序模板,不使用CMSIS-RTOS封装层,继续保持超强战斗力

    模板下载: 链接:https://pan.baidu.com/s/1idoQYcR3SOzVC3KTFcMGMA   提取码:i8k5 1.MDK使用MDK5.26及其以上版本. 2.进入到MDK5后 ...

  9. 一起学Android之Animation

    本文以一个简单的小例子,简述在Android开发中,动画的简单应用,仅供学习分享使用. 概述 android提供了各种强大的apis,用于将动画应用到ui元素中,来丰富应用程序的功能和应用. 动画分类 ...

  10. zabbix snmp监控与主被模式

    1.snmp基础介绍 snmp全称是简单网络管理协议 为什么要用? 路由器交换机无法安装agent程序,但是都提供snmp服务端, 我们可以使用zabbix的snmp方式监控snmp服务端的数据 2. ...