用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级 ...
随机推荐
- 《Go 精进之路》 读书笔记 (第一次更新)
<Go 精进之路> 读书笔记.简要记录自己打五角星的部分,方便复习巩固.目前看到p120 Go 语言遵从的设计哲学为组合 垂直组合:类型嵌入,快速让一个类型复用其他类型已经实现的能力,实现 ...
- 图片 css剪切,等比例缩放
object-fit: cover; .img1 {//自定义图片宽高,并且等比例缩放 width: 200px; height: 400px; object-fit: cover; }
- .Net WebApi 中的 FromBody FromForm FromQuery FromHeader FromRoute
在日常后端Api开发中,我们跟前端的沟通中,通常需要协商好入参的数据类型,和参数是通过什么方式存在于请求中的,是表单(form).请求体(body).地址栏参数(query).还是说通过请求头(hea ...
- windows C++ 异常调用栈简析
楔子 以win11 + vs2022运行VC++ 编译观察的结果. 如果安装了Visual Studio 2022,比如安装在D盘,则路径: D:\Visual Studio\IDE\VC\Tools ...
- 微信电脑版DAT文件转图片工具
一键批量将微信聊天接受到的加密存储DAT图片文件转化为普通图片. 通过查看转化后的图片,您可以: (1)清理无用的历史图片,节省电脑硬盘存储空间. (2)恢复寻找重要照片资料. 下载地址:点此下载 微 ...
- 前端枚举enum的应用(Element)封装
什么是枚举Enum 枚举 Enum是在众多语言中都有的一种数据类型,JavaScript中还没有(TypeScript有).用来表示一些特定类别的常量数据,如性别.学历.方向.账户状态等,项目开发中是 ...
- laravel 浏览器谷歌network返回报错html
laravel 在谷歌报错的时候会返回html,对于调试来说很不方便.原因是在于: 这里返回的格式是json,但是报错时候返回的是整个html所以 相对路径: app\Exceptions\Handl ...
- 微服务系列之分布式日志 ELK
1.ELK简介 ELK是ElasticSearch+LogStash+Kibana的缩写,是现代微服务架构流行的分布式日志解决方案,旨在大规模服务的日志集中管理查看,极大的为微服务开发人员提供了排查生 ...
- 齐博X1-栏目的调用1
本节来说明下系统提供的几个栏目调用的方法 一节我们制作了一个公共导航,本节我们在首页index中演示下栏目的相关调用 至于其他的数据内容,参考第二季的标签调用即可,直接{qb:tag}调用就可以调用出 ...
- 齐博x1标签动态调用数据
示例代码如下: {qb:tag name="news_list_page_listdata02" type="cms" union="fid" ...