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来写个小型购物车程序的更多相关文章

  1. python 3 - 写一个注册的程序,账号和密码都存在文件里面

    choice = input('请输入你的选择:1,注册2.删除用户3.登录') #注册 输入 账号 密码 密码确认 # #需要校验用户是否存在,两次输入的密码,是否一致,为空的情况 #账号和密码都存 ...

  2. 浅谈自学Python之路(购物车程序练习)

    购物车程序练习 今天我们来做一个购物车的程序联系,首先要理清思路 购物车程序需要用到什么知识点 需要用到哪些循环 程序编写过程中考虑值的类型,是int型还是字符串 如果值为字符串该怎么转成int型 用 ...

  3. python学习:购物车程序

    购物车程序 product_list = [ ('mac',9000), ('kindle',800), ('tesla',900000), ('python book',105), ('bike', ...

  4. python复习购物车程序

    个人学习总结: 无他,唯手熟尔!多敲多练才是王道 python 第三课 元组的灵活运用&字符串的诸多操作 Program01 '''时间 2018年2月12日12:15:28目的 购物车程序 ...

  5. 用python写一个定时提醒程序

    身体是革命的本钱,身体健康了我们才有更多精力做自己想做的事情,追求女神,追求梦想.然而程序员是一个苦比的职业,大部分时间都对着电脑,我现在颈椎就不好了,有时候眼睛还疼,我还没20阿,伤心...于是乎写 ...

  6. 使用python操作文件实现购物车程序

    使用python操作文件实现购物车程序 题目要求如下: 实现思路 始终维护一张字典,该字典里保存有用户账号密码,购物车记录等信息.在程序开始的时候读进来,程序结束的时候写回文件里去.在登录注册的部分, ...

  7. Python学习-购物车程序

    程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...

  8. python基础代码(猜年龄、从最内层跳出多层循环、简单的购物车程序)

    1.猜年龄 , 可以让用户最多猜三次! age = 55 i=0 while i<3: user_guess = int (input ("input your guess:" ...

  9. 程序代写, CS代写, 代码代写, CS编程代写, java代写, python代写, c++/c代写, R代写, 算法代写, web代写

    互联网一线工程师程序代写 微信联系 当天完成 查看大牛简介特色: 学霸代写,按时交付,保证原创,7*24在线服务,可加急.用心代写/辅导/帮助客户CS作业. 客户反馈与评价 服务质量:保证honor ...

  10. python学习(10)字典学习,写一个三级菜单程序

    学习了字典的应用.按老师的要求写一个三级菜单程序. 三级菜单程序需求如下: 1.深圳市的区--街道--社区---小区4级 2.建立一个字典,把各级区域都装进字典里 3.用户可以从1级进入2级再进入3级 ...

随机推荐

  1. 我的 Kafka 旅程 - Producer

    原理阐述 Producer生产者是数据的入口,它先将数据序列化后于内存的不同队列中,它用push模式再将内存中的数据发送到服务端的broker,以追加的方式到各自分区中存储.生产者端有两大线程,以先后 ...

  2. 《HelloGitHub》第 78 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...

  3. python_flask开发环境设置

    flask开发环境设置,在powershell终端窗口,可以通过一下方式设置: # 设置当前app实例 $env:FLASK_APP="app:create_app()" #将当前 ...

  4. R及R Studio下载安装教程(超详细)

    R 语言是为数学研究工作者设计的一种数学编程语言,主要用于统计分析.绘图.数据挖掘. 如果你是一个计算机程序的初学者并且急切地想了解计算机的通用编程,R 语言不是一个很理想的选择,可以选择 Pytho ...

  5. this硬绑定

    一.this显示绑定 this显示绑定,顾名思义,它有别于this的隐式绑定,而隐式绑定必须要求一个对象内部包含一个指向某个函数的属性(或者某个对象或者上下文包含一个函数调用位置),并通过这个属性间接 ...

  6. 2022-08-05-欢迎使用_Typecho

    layout: post cid: 1 title: 欢迎使用 Typecho slug: start date: 2022/08/05 14:21:51 updated: 2022/08/05 14 ...

  7. Resilience4J通过yml设置circuitBreaker

    介绍 Resilience4j是一个轻量级.易于使用的容错库,其灵感来自Netflix Hystrix,但专为Java 8和函数式编程设计. springcloud2020升级以后Hystrix被官方 ...

  8. JWT基础概念详解

    JWT基础概念详解 JWT介绍 之前我们文章讲过分布式session如何存储,其中就讲到过Token.JWT.首先,我们来回顾一下使用Token进行身份认证. 客户端发送登录请求到服务器 服务器在用户 ...

  9. virtualenv +virtualenvwrapper

    一.虚拟环境virtualenv 1.安装:pip3 install virtualenv 2.创建虚拟环境:virtualenv venv #venv为虚拟环境目录名,目录名自定义 #virtual ...

  10. 二、Django下载与运行

    二.Django下载与运行 2.1.Django的下载 目前我们学习和使用的版本是3.2LTS版本 目前开源软件发布一般会有2个不同的分支版本: 1. 普通发行版本: 经常用于一些新功能,新特性,但是 ...