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. C# 窗体文件下的 MainForm.cs,MainForm.Designer.cs,MainForm.resx,是什么,干什么

    Form.cs和Form.Designer.cs其实是一个类,Visual Studio为了让我们方便管理,用partial关键字把窗体类给拆开了, Form.Designer.cs存放的是窗体的布局 ...

  2. js & Object reference bug

    js & Object reference bug bug object ref bug onClickButton (type = ``) { let { publishDate: publ ...

  3. linux系统日志__ratelimit: N callbacks suppressed

    报错 今天线上遇到故障,php进行因为段错误退出了,系统日志中的kernel报错如下: Feb 25 22:25:11 web_server_01 kernel: __ratelimit: 250 c ...

  4. 牛客OI赛制测试赛3 解题报告

    前话: 话说考试描述:普及难度. 于是想在这场比赛上涨点信心. 考出来的结果:Point:480     Rank:40 然而同机房的最好成绩是 510. 没考好啊!有点炸心态,D题一些细节没有注意, ...

  5. A Mist of Florescence CodeForces - 989C(思维构造)

    题意: 让你构造一个图,使得A,B,C,D的个数为给定的个数,上下左右连通的算一个. 哎呀 看看代码就懂了..emm..很好懂的 #include <bits/stdc++.h> usin ...

  6. 【题解】HDU4336 Card Collector

    显然,这题有一种很简单的做法即直接状压卡牌的状态并转移期望的次数.但我们现在有一个更加强大的工具——min-max容斥. min-max 容斥(对期望也成立):\(E[max(S)] = \sum_{ ...

  7. 【刷题】洛谷 P1501 [国家集训队]Tree II

    题目描述 一棵n个点的树,每个点的初始权值为1.对于这棵树有q个操作,每个操作为以下四种操作之一: + u v c:将u到v的路径上的点的权值都加上自然数c: - u1 v1 u2 v2:将树中原有的 ...

  8. 【刷题】BZOJ 1926 [Sdoi2010]粟粟的书架

    Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Cormen 的文章.粟粟家中有一个 R行C 列的巨型书架,书 ...

  9. 2018.10.20 2018-2019 ICPC,NEERC,Southern Subregional Contest(Online Mirror, ACM-ICPC Rules)

    i207M的“怕不是一个小时就要弃疗的flag”并没有生效,这次居然写到了最后,好评=.= 然而可能是退役前和i207M的最后一场比赛了TAT 不过打得真的好爽啊QAQ 最终结果: 看见那几个罚时没, ...

  10. bzoj2755【SCOI2012】喵星人的入侵

    输入格式 第一行为三个整数n,m,K,分别表示地图的长和宽,以及最多能放置的炮塔数量. 接下来的n行,每行包含m个字符,‘#’表示地图上原有的障碍,‘.’表示该处为空地,数据保证在原地图上存在S到T的 ...