用Python来写个小型购物车程序
0x1 前言
Python语言能做很多东西的,像数据分析啊、自动化、开发、
爬虫(真的很棒哟,初学者玩很有成就感的啊哈哈)等等还有挺多。
0x2 用Python编写的一个小型购物车程序
import time money = 0 goods_lst = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
{"name": "风油精", "price": 30},
] # 定义购物车字典
car = {} # 1:{电脑 ... }
# 2:{鼠标 .... } def recharge():
global money
while True:
num = input("请充值吧,大哥")
if num.isdecimal():
money = int(num)
print("恭喜你~ 充值成功{}元人民币".format(money))
break
else:
print("充值失败,非数字.") def loading():
print("加载商品中 ... ")
time.sleep(1) def show_goods():
strvar = "{}".format("商品名称").center(18)
print("序号" + strvar + "价格")
for k, v in enumerate(goods_lst, start=1):
v['num'] = k
strvar = "{v[num]:<10}{v[name]:<12}{v[price]}".format(v=v)
print(strvar) def error():
strvar = '''
**************************************************
* 您输入的选项不存在 , 请重新输入 *
**************************************************
'''
print(strvar)
time.sleep(1) def add_car(num):
"""如果在购物车中,在数量上加1,如果不在购物车中,就添加新商品"""
if num not in car:
car[num] = {"name": goods_lst[num - 1]["name"], "price": goods_lst[num - 1]["price"], "amount": 1}
else:
car[num]["amount"] += 1
print(car) def show_car(num):
# print(car)
print("*" * 50)
print("您选择的商品具体信息:")
print("*-商品名称:{}".format(car[num]["name"]))
print("*-商品单价:{}".format(car[num]["price"]))
print("*-商品数量:{}".format(car[num]["amount"]))
print("已成功添加到购物车~ 请继续shopping ~")
print("*" * 50) def balance():
total = 0
print("[-------------------您购物车的具体商品如下:-------------------]")
# 序号2: 商品名称:鼠标 商品单价:10 商品数量:1 此商品总价:10
for k, v in car.items():
v["num"] = k
v["total"] = v["price"] * v["amount"]
total += v["total"] strvar = "序号{v[num]}: 商品名称:{v[name]} 商品单价:{v[price]} 商品数量:{v[amount]} 此商品总价:{v[total]}".format(v=v)
print(strvar)
return total # total 一共花的钱,money 充值金额
def success(total, money):
print("[一共:{}元]".format(total))
print("[您已经成功购买以上所有商品 , 余额还剩{}元,感谢您下次光临~]".format(money - total))
time.sleep(1) def del_goods(total, money):
print("余额不足,还差{}元,请忍痛割爱,删除某些商品".format(total - money))
sn = input("[-------------------请输入要删除的商品序号:-------------------] ")
if sn.isdecimal():
sn = int(sn)
if sn in car:
car[sn]["amount"] -= 1
if not car[sn]["amount"]:
car.pop(sn)
else:
error()
else:
error() def myexit():
print("[============== 欢迎下次光临: ==============]")
time.sleep(1) # N结算 Q退出 序号购买
# 主函数,进行统一调用
def main():
# 充值
recharge()
# 加载中
# loading()
# 展示商品
show_goods()
# 开始购物
sign = True
while sign:
num = input("请输入您要购买的商品")
if num.isdecimal():
num = int(num)
if (1 <= num) and (num <= len(goods_lst)):
add_car(num)
else:
print("输入有误,没有该序号的商品,请重新输入")
continue
# 展示购物车
show_car(num) elif num.upper() == "N":
while True:
# 开始结算
total = balance()
if total > money:
# 删除商品
del_goods(total, money)
else:
# 购买成功
success(total, money)
sign = False
break print(total)
elif num.upper() == "Q":
# 退出
myexit()
sign = False
else:
error() main()
用Python来写个小型购物车程序的更多相关文章
- python 3 - 写一个注册的程序,账号和密码都存在文件里面
choice = input('请输入你的选择:1,注册2.删除用户3.登录') #注册 输入 账号 密码 密码确认 # #需要校验用户是否存在,两次输入的密码,是否一致,为空的情况 #账号和密码都存 ...
- 浅谈自学Python之路(购物车程序练习)
购物车程序练习 今天我们来做一个购物车的程序联系,首先要理清思路 购物车程序需要用到什么知识点 需要用到哪些循环 程序编写过程中考虑值的类型,是int型还是字符串 如果值为字符串该怎么转成int型 用 ...
- python学习:购物车程序
购物车程序 product_list = [ ('mac',9000), ('kindle',800), ('tesla',900000), ('python book',105), ('bike', ...
- python复习购物车程序
个人学习总结: 无他,唯手熟尔!多敲多练才是王道 python 第三课 元组的灵活运用&字符串的诸多操作 Program01 '''时间 2018年2月12日12:15:28目的 购物车程序 ...
- 用python写一个定时提醒程序
身体是革命的本钱,身体健康了我们才有更多精力做自己想做的事情,追求女神,追求梦想.然而程序员是一个苦比的职业,大部分时间都对着电脑,我现在颈椎就不好了,有时候眼睛还疼,我还没20阿,伤心...于是乎写 ...
- 使用python操作文件实现购物车程序
使用python操作文件实现购物车程序 题目要求如下: 实现思路 始终维护一张字典,该字典里保存有用户账号密码,购物车记录等信息.在程序开始的时候读进来,程序结束的时候写回文件里去.在登录注册的部分, ...
- Python学习-购物车程序
程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...
- python基础代码(猜年龄、从最内层跳出多层循环、简单的购物车程序)
1.猜年龄 , 可以让用户最多猜三次! age = 55 i=0 while i<3: user_guess = int (input ("input your guess:" ...
- 程序代写, CS代写, 代码代写, CS编程代写, java代写, python代写, c++/c代写, R代写, 算法代写, web代写
互联网一线工程师程序代写 微信联系 当天完成 查看大牛简介特色: 学霸代写,按时交付,保证原创,7*24在线服务,可加急.用心代写/辅导/帮助客户CS作业. 客户反馈与评价 服务质量:保证honor ...
- python学习(10)字典学习,写一个三级菜单程序
学习了字典的应用.按老师的要求写一个三级菜单程序. 三级菜单程序需求如下: 1.深圳市的区--街道--社区---小区4级 2.建立一个字典,把各级区域都装进字典里 3.用户可以从1级进入2级再进入3级 ...
随机推荐
- Asp-Net-Core开发笔记:集成Hangfire实现异步任务队列和定时任务
前言 最近把Python写的数据采集平台往.Net Core上迁移,原本的采集任务使用多进程+线程池的方式来加快采集速度,使用Celery作为异步任务队列兼具定时任务功能,这套东西用着还行,但反正就折 ...
- DDD-领域驱动(二)-贫血模型与充血模型
贫血模型 一般来说 贫血模型:**一个类中只有属性或者成员变量,没有方法 **!例如 DbFirst 从数据库同步实体过来, -- 对于一个系统刚开始的时候会觉得这时候是最舒服的,但是如果后期系统需要 ...
- 【编程学习】MATLAB
目录 一.MATLAB基础 1. 学会完成MATLAB的安装与启动 1.1 软件包下载 1.2 安装步骤 2. 矩阵的基本操作与运算 2.1 矩阵的简单输入与操作 2.2 矩阵的基本运算 2.2.1 ...
- git-secret:在 Git 存储库中加密和存储密钥(下)
在之前的文章中(点击此处查看上一篇文章),我们了解了如何识别包含密钥的文件,将密钥添加到 .gitignore ,通过 git-secret 进行加密,以及将加密文件提交到存储库.在本篇文章中,将带你 ...
- Chrony时间同步服务
概: 网络时间协议(Network Time Protocol,NTP)是用于网络时间同步的协议.提供NTP时间同步服务的软件有很多,这里采用Chrony软件来实现时间同步 chrony 的优势: ...
- C++之值传递&指针传递&引用传递详解
C++之值传递&指针传递&引用传递详解 目录 C++之值传递&指针传递&引用传递详解 1.函数基础 2.值传递 3.指针传递 4.引用传递 1.函数基础 一个函数由以下 ...
- 利用inotify和rsync服务实现数据实时同步
文件定时同步的实现: 利用rsync结合cron计划任务实现: rsync -av --delete /data/ 10.0.0.12:/back -a:保留文件属性 -v:显示过程 -delete: ...
- gin框架——使用viper读取配置
什么是viper Viper是Go应用程序的完整配置解决方案,包括12-Factor(也称为"十二要素",是一套流行的应用程序开发原则. 其实我也不是很清楚)应用程序.它被设计为在 ...
- MFC 学习笔记
MFC 学习笔记 一.MFC编程基础: 概述: 常用头文件: MFC控制台程序: MFC库程序: 规则库可以被各种程序所调用,扩展库只能被MFC程序调用. MFC窗口程序: 示例: MFC库中类的简介 ...
- Django系列---开发三 前后端分离
数据交互接口规范REST,全称 Representational State Transfer,意为"表现层状态转化". django的第三方拓展--django-rest-fra ...