Alex大神的购物车需求:

商品列表,选择商品后加入购物车,扣款显示余额,如余额不足则提示购买此商品还需充值的金额,退出后自动结账显示余额;

# 编辑者:闫龙
#弱鸡购物车程序,需求:定义金额,选择商品,没选择一次告知用户剩余金额,收入Q退出
#定义Money变量为字符串,为之后的转换类型做祭奠
Money="";
#首先判断Money的类型是否为int
while(type(Money) != type(1)):
#尝试将用户输入的金额转为int
try:
Money=int(input("请输入您本次携带的金额:"));
#如果用户输入的金额不能被转成int,重复输入
except:
print("你在输入个什么鬼?");
#定义商品的名称和商品的价格,价格与商品一一对应;
Products = ["糖果","苹果","香蕉","黄瓜","茄子"];
ProductsPrice = [15, 25, 20, 10, 5];
#判断一下你手里的钱够不够买我们家最便的商品,不够就请自觉离开
if Money < min(ProductsPrice):
print("你么这点儿钱,买个毛线!");
exit();
#开始进入商城
print("欢迎光临Fire商城!\n我们提供以下商品供您选择:");
#用户选择的商品列表
UserSelectList = [];
#用户选择的商品价格列表
UserSelectPrice = [];
#开始循环商城商品列表
while True:
#输出商品列表使用for循环输出
for i in range(0, len(Products)):
print(str(i+1) + ". " + Products[i] + "\t" + str(ProductsPrice[i]));
#获取用户选择的商品
UserSelect = input("请输入您所购买商品的编号或者名称(Q or 滚 结算购物车):");
#判断如果不是退出的选项,继续进行
if (UserSelect != "滚" and UserSelect != "Q" and UserSelect !="q") :
#判断用户输入的是商品编码还是商品名称:
try:
#如果成功的将UserSelect转换为int则代表用户输入的是商品编码
#-1的意思是商品显示编码与列表内位置相差1
UserSelect = int(UserSelect)-1;
#获取用户所输入商品编码所对应的商品名称
UserProducts = Products[UserSelect];
#为用户选择商品的价格列表加入当前选择商品的价格
UserSelectPrice.append(ProductsPrice[UserSelect]);
##判断用户输入的是商品名称:
except:
#如果这个商品名称出现在商品列表中,则继续
if(Products.count(UserSelect) > 0):
# 为用户选择商品的价格列表加入当前选择商品的价格
UserSelectPrice.append(ProductsPrice[Products.index(UserSelect)]);
#获取商品的名称
UserProducts = UserSelect;
#如果商品不在列表中,则提示并重新循环
else:
print("请问你在输入个什么鬼?");
continue;
#判断用户的购物车中有没有商品,为计算余额是否充足
if(len(UserSelectList)==0):
#没有商品就直接将商品添加
UserSelectList.append(UserProducts);
else:
#判断用户所选择的商品价格综合是否大于余额;
if(sum(UserSelectPrice)> Money):
print("对不起,您的余额不足!如要购买",
UserProducts,"还需充值",(sum(UserSelectPrice)-Money));
#如果商品添加失败,则将最后添加到用户价格列表中的Item删除;
UserSelectPrice.pop(-1);
else:
#将商品加入用户购物车
UserSelectList.append(UserProducts);
print("当前余额:",Money-sum(UserSelectPrice),"元");
else:
break;
print("您本次购买的商品如下:");
for i in range(0, len(UserSelectList)):
print(str(i + 1) + ". " + UserSelectList[i] + "\t" + str(UserSelectPrice[i]));
print("共计:",sum(UserSelectPrice),"元");
print("您的余额:",Money-sum(UserSelectPrice),"元");

Python练习-一辆购物车的寂寞都是Alex的错的更多相关文章

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

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

  2. python︱模块加载(pip安装)以及pycharm安装与报错解决方式

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 准备放下R开始学python,真是痛苦,因为找 ...

  3. e3mall商城总结12之购物车的实现、以及购物车小计问题、json406报错

    说在前面的话 1.本节主要讲了e3mall购物车的实现方法,我搭建的项目和系统购物车有一些区别,因此这里需要说一下.系统搭建的项目在未登陆的情况下也可以通过cookie进行加入购物车,当用户要下单的时 ...

  4. 《.NET 5.0 背锅案》第5集-案情大转弯:都是我们的错,让 .NET 5.0 背锅

    第1集:验证 .NET 5.0 正式版 docker 镜像问题 第2集:码中的小窟窿,背后的大坑,发现重要嫌犯 EnyimMemcachedCore 第3集-剧情反转:EnyimMemcachedCo ...

  5. 用python解决打标签时将xml文件的标签名打错

    用python解决打标签时将xml文件的标签名打错 问题描述:再进行达标签时将magnetic_tile的标签名错误的打成了magnetic_title,又不想一张一张的修改 出现问题的xml文件 & ...

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

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

  7. Python实战之ATM+购物车

    ATM + 购物车 需求分析 ''' - 额度 15000或自定义 - 实现购物商城,买东西加入 购物车,调用信用卡接口结账 - 可以提现,手续费5% - 支持多账户登录 - 支持账户间转账 - 记录 ...

  8. Python之路 day2 购物车小程序1

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

  9. 第一个简单的python程序,模拟购物车

    第一个pyhone程序,简单的购物车功能,刚开始学习,练习下手感. #/usr/bin/env python#-*- coding:utf-8 -*- salary = int(raw_input(& ...

随机推荐

  1. python安装报错:Microsoft Visual C++ 14.0 is required

    保存详情如下: error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build T ...

  2. [转帖]超能课堂 CPU制作过程

    http://www.expreview.com/50814.html 一般来说,我们对IC芯片的了解仅限于它概念,但是对于已经应用到各式各样的数码产品中IC芯片是怎么来的?大家可能只知道制作IC芯片 ...

  3. Windows 10 正式版原版ISO镜像

    Win10正式版32位简体中文版(含家庭版.专业版)文件名: cn_windows_10_multiple_editions_x86_dvd_6846431.isoSHA1:21B824F402927 ...

  4. 每秒更新时间 v-text的应用 (解决闪现{}问题)

    有闪现<div id="app"> {{date}}</div> 无闪现<div id="app" v-text:date=&qu ...

  5. Android 去掉标题全屏显示

    自己测试时出现无法实现去掉标题和全屏功能.最后发现只要public class SocketActivity extends Activity {} 而不能用ActionBarActivity. 先介 ...

  6. wai

    外键的过滤是怎么做的, 一个class有两个外键A和B,其中A又是B的外键,在这种情况下,比如A选择了学校之后,可否在B中过滤出A学校的所有的专业?也就是说在选择的时候能不能按照已经填好的一个选项来选 ...

  7. UVA11374_Airport Express

    给一个无向图,有的边是特殊边,最多可以取一条特殊边,求最短路,并且输出路径. 这样考虑,加入所有非特殊边,求出每个点到起点和终点的最短路.然后加入特殊边的时候,如果取当前这条特殊边,那么答案会是两点预 ...

  8. 多示例学习 multiple instance learning (MIL)

    多示例学习:包(bags) 和 示例 (instance). 包是由多个示例组成的,举个例子,在图像分类中,一张图片就是一个包,图片分割出的patches就是示例.在多示例学习中,包带有类别标签而示例 ...

  9. JVM学习笔记(一):Java内存区域

    由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分.在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程: 首先Java源代码文件(. ...

  10. Luogu 1429 平面最近点对 | 平面分治

    Luogu 1429 平面最近点对 题目描述 给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的 输入输出格式 输入格式: 第一行:n:2≤n≤200000 ...