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(& ...
随机推荐
- [学习]ulimit
ulimit User limits - limit the use of system-wide resources. Syntax ulimit [-acdfHlmnpsStuv] [limit] ...
- [学习]Windows server 使用控制台时容易卡死的解决方法
公司使用Windows server 下面的 cmd 命令行 控制台打开某一个 bat 文件的方式 进行后台使用.. 但是经常发现在winserver 2016 时 遇到卡死的情况, 今天中午我再进行 ...
- C# 键盘记录器
设计背景 Win系统带有API可以获取键入值,本小程序主要应用了一个网上广为流传的类,可以说一个测试DEMO.有俗称为键盘钩子 设计思路 使用Win API获取建入值 相关技术 Win API 功能 ...
- Musical Theme POJ - 1743(后缀数组+二分)
求不可重叠最长重复子串 对于height[i]定义为sa[i]和 sa[i-1]的最长公共前缀 这个最长公共前缀的值肯定是最大的 证明: 设rank[j] < rank[k], 则不难证明后缀j ...
- [洛谷P5216]DLS 采花
题目大意:有$n$个数,任意排列,排列后第$i$个数会产生贡献当且仅当$1\sim i-1$中的数不是它的因子,问所有排列的贡献和 题解:发现一个数要产生贡献要求所有它的因子在它的右边,设有$cnt_ ...
- What?
What? 本文主要讲解一下kubernetes周边的概念,可以说是一小部分的生态圈,逐渐了解一下,走进kubernetes的世界.请读者在读的时候,带着批判的态度去读. 一张概览图: 云计算: 原文 ...
- AC自动机【萌新文章】
我这个蒟蒻第一次写博客,有点小激动呢. 主要是最近刚学了AC自动机,学得糟糟糕糕,记录一下,看到dalao们都在写博客,决定自己也写一波[我好水的啦,写的也不好] AC自动机大概就是 Trie+ ...
- 解题:USACO14MAR Counting Friends
题面 枚举每个数字是否能被删去,然后就是如何判定图是否存在.应该从按“度数”从大到小排序,从最大的顺次向其他点连边(先连“度数”小的可能会把一些可以和大“度数”点连接的点用掉).但是这个排序每连一次都 ...
- 把矩阵分成n*m个块,从任意一个块出发,问是否可以一笔画遍历矩阵中所有的块
- git<add的作用>
git add是个多功能的命令 1,跟踪: git add:跟踪当前目录下所有文件 git add <filename>:跟踪文件<filename> 2,暂存已修改的文件: ...