Python练习-一辆购物车的寂寞都是Alex的错
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的错的更多相关文章
- 使用python操作文件实现购物车程序
使用python操作文件实现购物车程序 题目要求如下: 实现思路 始终维护一张字典,该字典里保存有用户账号密码,购物车记录等信息.在程序开始的时候读进来,程序结束的时候写回文件里去.在登录注册的部分, ...
- python︱模块加载(pip安装)以及pycharm安装与报错解决方式
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 准备放下R开始学python,真是痛苦,因为找 ...
- e3mall商城总结12之购物车的实现、以及购物车小计问题、json406报错
说在前面的话 1.本节主要讲了e3mall购物车的实现方法,我搭建的项目和系统购物车有一些区别,因此这里需要说一下.系统搭建的项目在未登陆的情况下也可以通过cookie进行加入购物车,当用户要下单的时 ...
- 《.NET 5.0 背锅案》第5集-案情大转弯:都是我们的错,让 .NET 5.0 背锅
第1集:验证 .NET 5.0 正式版 docker 镜像问题 第2集:码中的小窟窿,背后的大坑,发现重要嫌犯 EnyimMemcachedCore 第3集-剧情反转:EnyimMemcachedCo ...
- 用python解决打标签时将xml文件的标签名打错
用python解决打标签时将xml文件的标签名打错 问题描述:再进行达标签时将magnetic_tile的标签名错误的打成了magnetic_title,又不想一张一张的修改 出现问题的xml文件 & ...
- 浅谈自学Python之路(购物车程序练习)
购物车程序练习 今天我们来做一个购物车的程序联系,首先要理清思路 购物车程序需要用到什么知识点 需要用到哪些循环 程序编写过程中考虑值的类型,是int型还是字符串 如果值为字符串该怎么转成int型 用 ...
- Python实战之ATM+购物车
ATM + 购物车 需求分析 ''' - 额度 15000或自定义 - 实现购物商城,买东西加入 购物车,调用信用卡接口结账 - 可以提现,手续费5% - 支持多账户登录 - 支持账户间转账 - 记录 ...
- Python之路 day2 购物车小程序1
#Author:ersa ''' 程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时 ...
- 第一个简单的python程序,模拟购物车
第一个pyhone程序,简单的购物车功能,刚开始学习,练习下手感. #/usr/bin/env python#-*- coding:utf-8 -*- salary = int(raw_input(& ...
随机推荐
- delphi的ActionToolBar控件的使用 [问题点数:50分]
delphi那些默认图标在哪里就是那些Text,Label,Checkbox,显示在palette上面的那些图标. 上面的按钮是在ActionManager中添加的,让后拖到ActionToolBar ...
- 【uoj#315/bzoj4943】[NOI2017]蚯蚓排队 Hash
题目描述 给出 $n$ 个字符,初始每个字符单独成字符串.支持 $m$ 次操作,每次为一下三种之一: $1\ i\ j$ :将以 $i$ 结尾的串和以 $j$ 开头的串连到一起. $2\ i$ :将 ...
- Qt——常用控件样式
下面是我设计.调整.修改的Qt控件样式,仅供参考. Github地址:https://github.com/ikongziming/QtDemo/tree/master/StyleSheetDemo ...
- linux 配置文件(启动文件、环境文件)启动顺序
1.登录shell 登录shell时,linux会按一定规则读取启动几个配置文件: /ect/profile $HOME/.bash_profile $HOME/.bashrc $HOME/.bash ...
- 关于BIO和NIO的理解
摘要: 关于BIO和NIO的理解 最近大概看了ZooKeeper和Mina的源码发现都是用Java NIO实现的,所以有必要搞清楚什么是NIO.下面是我结合网络资料自己总结的,为了节约时间图示随便画的 ...
- BZOJ 1180: [CROATIAN2009]OTOCI
1180: [CROATIAN2009]OTOCI Time Limit: 50 Sec Memory Limit: 162 MBSubmit: 989 Solved: 611[Submit][S ...
- 解题:HAOI 2012 道路
题面 这题不开O2怎么过=.= 可能这种有关最短路的计数题做多了就有些感觉了...... 以每个点为基准跑出一张最短路图,然后对每个边$(u,v)$统计两个东西.一个$pre[u]$表示到达$u$这个 ...
- MySQL 第七篇:视图、触发器、事务、存储过程、函数
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- Activiti工作流的应用示例 (官方guide项目方式)
转: Activiti工作流的应用示例 1.新建流程模型 模型管理->模型工作区 点击“创建”后会立即跳转到“流程在线设计器”页面,请参考下一节 2.在线流程设计器 模型管理->模型工作区 ...
- Chapter6(函数) --C++Prime笔记
1.重载函数,也就是说一个名字可以对应几个不同的函数. 2.内置类型的未初始化局部变量将产生未定义的值. 3.局部静态对象在程序执行路径第一次进过对象定义语句时初始化,并且直到程序终止才被销毁. 内置 ...