Python3 函数实践之简易购物系统
函数实践之简易购物系统
项目主要需求:
用户可以自行选择功能
该购物系统具有
注册/登录/购物/购物车/退出登录
功能用户在登录后才能使用
购物/购物车/退出登录
功能
'''
注册
登录
购物
购物车
退出登录
'''
username_list = []
goods_dict = {
'1': '马云',
'2': '马化腾',
'3': '马冬梅'
}
shopping_cart_dict = {}
def register():
'''注册'''
print('*' * 20, '注册', '*' * 20)
while True:
username_inp = input('请输入用户名: ')
pwd_inp = input('请输入密码: ')
re_pwd_inp = input('再次输入密码以确认: ')
if pwd_inp == re_pwd_inp:
with open('user_info', 'a', encoding='utf-8') as fa:
fa.write(f'{username_inp}:{pwd_inp}\n')
print('注册成功')
break
else:
print('两次密码输入不一致')
def login():
'''登录'''
print('*' * 20, '登录', '*' * 20)
count = 0
while count < 3:
if username_list:
print('你已登录')
break
username_inp = input('请输入用户名: ')
pwd_inp = input('请输入密码: ')
with open('user_info', 'r', encoding='utf-8') as fr:
for user_info in fr:
user_info = user_info.strip()
username, pwd = user_info.split(':')
if username_inp == username and pwd == pwd_inp:
print('登录成功')
username_list.append(username_inp)
count = 3
break
else:
print('用户名或密码错误')
count += 1
def shopping():
'''购物'''
print('*' * 20, '购物', '*' * 20)
while True:
if not username_list:
print('请先登录')
break
print('''
1 马云
2 马化腾
3 马冬梅
''')
choice = input('请输入你要购买的商品编号,其他任意内容回到主菜单: ')
if choice not in ['1', '2', '3']:
break
# 判断选择商品在购物车中是否存在. 已经存在: 数量加1; 不存在: 数量为1
goods_name = goods_dict[choice]
if goods_name in shopping_cart_dict:
shopping_cart_dict[goods_name] += 1
else:
shopping_cart_dict[goods_name] = 1
print(f'已添加至购物车, 当前购物车商品为:\n{goods_dict}')
def shopping_cart():
'''购物车'''
if not username_list:
print('请先登录')
return
print('*' * 20, '购物车', '*' * 20)
if shopping_cart_dict == {}:
print('购物车为空,请先挑选商品')
return
print(f'当前购物车商品有:{shopping_cart_dict}')
buy_choice = input('确认购买请输入Y,其他任意内容回到主菜单: ')
if buy_choice not in ['Y', 'y']:
func()
shopping_cart_dict.clear()
print('购买成功!')
def logout():
'''退出登录'''
if not username_list:
print('请先登录')
return
choice = input('确认退出登录请输入Y,其他任意内容回到主菜单: ')
if choice not in ['Y', 'y']:
return
username_list.clear()
print('已退出登录')
func_dict = {
'1': register,
'2': login,
'3': shopping,
'4': shopping_cart,
'5': logout
}
def func():
'''功能菜单'''
while True:
print('''
1 : 注册
2 : 登录
3 : 购物
4 : 购物车
5 : 退出登录
''')
choice = input('请输入编号选择功能,其他任意内容退出程序: ')
if choice not in func_dict:
break
func_dict[choice]() # 使用函数对象调用函数
func()
Python3 函数实践之简易购物系统的更多相关文章
- Python3 函数基础2
目录 可变长参数 可变长形参: *args 可变长实参: *容器类 可变长形参: **kwargs 可变长实参: **字典 函数对象 引用 当做容器类型元素 当做参数传给一个函数 当做函数的返回值 函 ...
- 由浅入深SCF无服务器云函数实践
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:陈杰,腾讯云架构平台部技术专家 近年来,互联网服务从一开始的物理服务器托管,虚拟机,容器,发展到现在的云函数,逐步无服务器化,如下表所示. ...
- python 操作mysql数据库之模拟购物系统登录及购物
python 操作mysql数据库之模拟购物系统登录及购物,功能包含普通用户.管理员登录,查看商品.购买商品.添加商品,用户充值等. mysql 数据库shop 表结构创建如下: create TAB ...
- [ python ] 购物系统
作业需求 1. 购物系统,能够注册登录,用户第一次登录后,让用户输入金额,然后打印商品列表2. 允许用户根据商品编号购买商品3. 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒4. 购买完一 ...
- Django之简易用户系统(3)
目录 1. 总体设计思路 2. 搭建简易用户系统 2.1 配置模型Model 2. 2 写入数据库: 2.3 数据库验证表: 2.4 路由URL配置: 2.5 用户增加 后台执行脚本配置: 视图模板配 ...
- Java Web之网上购物系统(注册、登录、浏览商品、添加购物车)
眼看就要期末了,我的专业课也迎来了第二次的期末作业---------<网上购物系统>.虽然老师的意图是在锻炼我们后台的能力,但是想着还是不利用网上的模板,准备自己写,以来别人写的静态页看不 ...
- 案例:我行我素购物系统 v1.1
系统逻辑结构: import java.util.Scanner; public class ShoppingSystem { public static void main(String[] arg ...
- java基本打印练习《我行我素购物系统》
public class ShoppingSystem{ public static void main(String[] args){ //System.out.println("**** ...
- AngularJs打造一个简易权限系统
AngularJs打造一个简易权限系统 一.引言 上一篇博文已经向大家介绍了AngularJS核心的一些知识点,在这篇博文将介绍如何把AngularJs应用到实际项目中.本篇博文将使用AngularJ ...
随机推荐
- pat 1006 Sign In and Sign Out(25 分)
1006 Sign In and Sign Out(25 分) At the beginning of every day, the first person who signs in the com ...
- poj 3281 Dining (Dinic)
Dining Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 22572 Accepted: 10015 Descript ...
- 【前端vue进阶实战】:从零打造一个流程图、拓扑图项目【Nuxt.js + Element + Vuex】 (一)
本系列教程是用Vue.js + Nuxt.js + Element + Vuex + 开源js绘图库,打造一个属于自己的在线绘图软件,最终效果:topology.le5le.com .如果你觉得好,欢 ...
- Ubuntu Server16.04 安装Odoo11
odoo11采用了python3实现的. 1.sudo adduser odoo //新建一个用户odoo 2.给odoo 用户root 权限 visudo //使用visudo 编辑 /et ...
- Beta阶段贡献分配
此作业要求参见:http://edu.cnblogs.com/campus/nenu/2019fall/homework/10006 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 韩昊 刘信鹏 要 ...
- 第一解出的pwn题
虽然题目不难,但是 是我第一次做出的pwn题,得写下. __int64 sub_4007E6() { char s1; // [sp+0h] [bp-30h]@1 memset(&s1, , ...
- IT人该如何未雨绸缪,不断提升自己的竞争力?同时尽量避免风险?
人会慢慢变老,变老后精力,记忆力乃至身体会慢慢变差,这是无法逆转的自然规律.随之会产生的是对中年危机的忧虑乃至恐惧,比如担心能力精力不及年轻人,从而导致收入锐减乃至失业. 对此我有如下三点不解.第一, ...
- Stream系列(六)Match方法使用
条件比配 视频讲解 https://www.bilibili.com/video/av77403655/ EmployeeTestCase.java package com.example.demo; ...
- linux hwclock
在Linux中,系统时间(软件时间)和硬件时间,并不会自动同步,系统时间和硬件时间以异步的方式运行,互不干扰.硬件时间的运行,是靠Bios电池来维持,而系统时间,是在系统开机的时候,会自动从Bios中 ...
- python遍历所有盘符下的图片并拷贝下来
最近在学习python,闲着无聊就试着写啦这个小的脚本,虽然有很多不足,但是还是收获不少. 该脚本的功能: ①遍历本地计算机中的所有盘符,并将名称记录下来: ②循环遍历盘符下的所有图片(当然这里可以根 ...