pyhton购物程序
要求:
- 启动程序后,让用户输入工资,然后打印出带有序号的商品列表
- 用户输入商品序号购买相应的商品,或者输入 ' q ' 退出购买界面
- 选择商品后,检查余额是否足够,够则直接扣款,不够则提示余额不足
- 用户每购买一件商品后,或者输入 ' q ' 退出购买界面后,提示:是否继续购买?(Y/N),实现多次购买
- 若用户购买了商品,打印出购买的商品列表,总金额,余额;若用户没买任何商品,打印:交易结束,购物失败
Readme:
运行程序,输入薪水,根据商品列表的序号选择购买的商品,可以选择多次购买,或者不购买
流程图:
代码:
# 简单的购物小程序 product_list = [
['surface pro 4', 7800],
['dell xps 15', 12000],
['macbook', 12000],
['小米6', 2499],
['iphone7', 4600],
['坚果Pro', 1499]
]
shopping_list = [] # 判断输入的薪水格式是否正确
while True:
salary = input('\n请输入您的薪水:')
if not salary.isdigit(): # 薪水不是数字,结束循环
print('\n输入格式有误!请重新输入...')
continue
break balance = salary = int(salary) print('\n-----------欢迎购买------------\n') # 生成带序号的商品列表
for index, item in enumerate(product_list):
print(index, item) # 判断输入的序号是否符合要求
while True: while True:
i = input('\n输入您要购买的商品序号,或输入 q 取消购买:')
if i == 'q': # 输入 q 退出购买界面
while True:
a = input('\n是否继续购买?(Y/N):')
if a != 'n' and a != 'N' and a != 'y' and a != 'Y':
print('\n输入格式有误,请重试...')
continue
elif a == 'y' or a == 'Y': # 继续购买
break
else: # 购买完毕
if balance == salary: # 没有买任何东西
print('\n交易结束,购买失败...')
exit()
else: # 结算
print('\n您已成功购买以下商品:\n')
for item in shopping_list:
print(item)
print('\n共消费金额 %d 元,余额 %d 元' % (salary - balance, balance))
exit()
continue if not i.isdigit(): # 序号不是数字,结束循环
print('\n输入格式有误!请重新输入...')
continue i = int(i) if i < 0 or i >= len(product_list): # 序号范围不正确,结束循环
print('\n此商品不存在,请重新输入...')
continue
break product = product_list[i]
price = int(product[1]) # 判断余额是否充足,够就直接扣款,不够提醒
if price <= balance:
balance -= price
shopping_list.append(product_list[i])
print('\n您已成功购买 %s ,当前余额为 %d 元' %(product, balance))
else:
print('\n购买失败,您的余额不足...') while True:
a = input('\n是否继续购买?(Y/N):')
if a != 'n' and a != 'N' and a != 'y' and a != 'Y':
print('\n输入格式有误,请重试...')
continue
break if a == 'Y' or a == 'y':
continue
else:
break if balance == salary:
print('\n交易结束,购买失败...')
exit()
else:
print('\n您已成功购买以下商品:\n')
for item in shopping_list:
print(item)
print('\n共消费金额 %d 元,余额 %d 元' %(salary-balance, balance))
exit()
pyhton购物程序的更多相关文章
- [terry笔记]python购物程序
如下是一个购物程序: 先输入工资,显示商品列表,购买,quit退出,最后格式化输出所买的商品. count = 0 while True: #做一个循环判断,如果输入的不是数字,基于提示,三次后退出 ...
- python3 购物程序
要求: 一.启动程序后,选择是商家还是用户 1.选择商家用户 输入用户名,密码进入 选择增加商品及价格:格式: 商品名称 价格 选择编辑商品及价格:根据提示进行操作 2.选择用户 输入用户名,密码进 ...
- python ATM购物程序
需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期未还,按欠 ...
- Python 简单购物程序
# Author:Eric Zhao# -*- coding:utf-8 -*-'''需求:启动程序后,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够,够就 ...
- 基于python网络编程实现支持购物、转账、存取钱、定时计算利息的信用卡系统
一.要求 二.思路 1.购物类buy 接收 信用卡类 的信用卡可用可用余额, 返回消费金额 2.信用卡(ATM)类 接收上次操作后,信用卡可用余额,总欠款,剩余欠款,存款 其中: 1.每种交易类型不单 ...
- (七)第一个python程序!
这是对我自己来说比较有仪式的一篇随笔记录,说了那么多,开始第一个pyhton小程序吧! 首先找一个版本比较新的Linux系统, 执行Python –V 查看一下你的Python版本: # python ...
- 6_python之路之atm购物
6_python之路之atm购物 1.程序说明:Readme.cmd supermarket 项目主目录 ├── access.log 日志文件 ├── atm atm程序 │?? ├── atm.p ...
- struts.xml配置详解 内部资料 请勿转载 谢谢合作
1.<include> 利用include标签,可以将一个struts.xml配置文件分割成多个配置文件,然后在struts.xml中使用<include>标签引入其他配置文件 ...
- struts.xml配置详解
struts.xml是我们在开发中利用率最高的文件,也是Struts2中最重要的配置文件. 一下分别介绍一下几个struts.xml中常用到的标签 1.<include> 利用includ ...
随机推荐
- Java IO学习笔记(三)转换流、数据流、字节数组流
转换流 1.转换流:将字节流转换成字符流,转换之后就可以一个字符一个字符的往程序写内容了,并且可以调用字符节点流的write(String s)方法,还可以在外面套用BufferedReader()和 ...
- hack在微信等webview中无法修改document.title的情况
var $body = $('body'); document.title = '确认车牌'; // hack在微信等webview中无法修改document.title的情况 var $iframe ...
- JSP基本语法总结【2】九大内置对象
内置对象也称为内建对象,隐含对象,即无需声明,直接可以在JSP中使用的java对象.JSP的内置对象就是把最常用.重要的几个对象直接创建了. JSP有9大内置对象:Request,Response, ...
- Windows 10 上,Edge 浏览器不支持插件,因此将不运行 Java
在 Windows 10 上,Edge 浏览器不支持插件,因此将不运行 Java.微软想干嘛?
- Vue2.0 生产环境部署
简要:继上次搭建vue环境后,开始着手vue的学习;为此向大家分享从开发环境部署到生产环境(线上)中遇到的问题和解决办法,希望能够跟各位VUE大神学习探索,如果有不对或者好的建议告知下:*~*! 一. ...
- 008.Adding a model to an ASP.NET Core MVC app --【在 asp.net core mvc 中添加一个model (模型)】
Adding a model to an ASP.NET Core MVC app在 asp.net core mvc 中添加一个model (模型)2017-3-30 8 分钟阅读时长 本文内容1. ...
- React Native App设置&Android版发布
React Native系列 <逻辑性最强的React Native环境搭建与调试> <ReactNative开发工具有这一篇足矣> <解决React Native un ...
- 文件的默认权限UMASK
当进入Linux系统后新创建的文件或者文件夹总是会有一个默认的权限,那么这个权限是如何设置的呢? umask就是设置文件与目录的默认权限 1. 查看umask 直接查看, [root@centos6 ...
- 【网络】dns_probe_finished_nxdomain 错误
解决方案: 谷歌浏览器地址栏输入 chrome://net-internals/#dns 清除 dns 缓存即可
- Charles录制App的接口har文件
Charles录制App的接口har文件 如果我们想录制我们自己App后台请求接口的信息,并生成har文件,要怎么做呢?其实很简单,就是通过Charles,让手机的访问请求走这个Charles代理就行 ...