Python学习-购物车程序
程序:购物车程序
需求:
- 启动程序后,让用户输入工资,然后打印商品列表
- 允许用户根据商品编号购买商品
- 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
- 可随时退出,退出时,打印已购买商品和余额
程序如下:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2018/4/28 16:23
# @Author : yang
# @File : Shopping_Cart_Program01.py
# @Software: PyCharm
#定义商品列表
product_list = [('Iphone',6000),
('MAC Pro',9800),
('Bike',800),
('Watch',10600),
('Coffee',31),
('Alex python',120),]
shopping_list = [] #定义空的购物车列表
#输入工资
salary = input('Input your salary:')
if salary.isdigit():
salary = int(salary)
#循环输入需要购买的商品编号
while True:
# enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列
for index,item in enumerate(product_list):
print(index,item) #打印输出带编号的商品列表
user_choice = input('选择要买的商品编号>>>:') #输入要购买的商品编号
if user_choice.isdigit()==False and user_choice.upper() != 'Q':
print('\033[1;43m你输入的商品编号不合法!\033[0m')
exit()
elif user_choice.isdigit()==True: #判断输入的字符串是否由数字组成
user_choice = int(user_choice)
if user_choice < len(product_list) and user_choice >=0:
p_item = product_list[user_choice]
if p_item[1] <= salary: #买得起
shopping_list.append(p_item)
salary -= p_item[1]
print('将商品%s添加到购物车,剩余金额\033[1;31;42m%s\033[0m'%(p_item,salary))
#高亮显示:开头部分:\033[显示方式;前景色;背景色m + 结尾部分:\033[0m
else: #买不起
print('\033[1;41m你的余额只剩[%s]啦,还买个毛线!\033[0m'%salary)
else:
print('\033[1;41m商品%s不存在!\033[0m'%user_choice) #退出购物车程序:打印输出购物列表和余额
elif user_choice.upper() == 'Q':
print('---------------shopping list---------')
for p in shopping_list:
print(p)
print('你的余额还剩:',salary)
exit()
else:
exit()
else: #如果输入的工资不合法,则退出程序
print('您输入的工资不合法!')
exit()
注:程序参照老男孩Alex,附博客地址:http://www.cnblogs.com/alex3714/articles/5717620.html
Python学习-购物车程序的更多相关文章
- Python学习——购物车程序
问题需求: 1.启动程序,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时退出,退出时,打印已购买的商品和余 ...
- python复习购物车程序
个人学习总结: 无他,唯手熟尔!多敲多练才是王道 python 第三课 元组的灵活运用&字符串的诸多操作 Program01 '''时间 2018年2月12日12:15:28目的 购物车程序 ...
- Python初探-购物车程序
要求: 1,用户进入后,有欢迎语并提示用户输入本金 2.用户输入正确的内容后有购物菜单显示给用户 3.当用户的本金不足以购买商品的时候有提示余额不足并告知差额 4.成功购物后提示已购买内容和购买后的余 ...
- Python学习--课本程序练习(周更)
1.绘制正方形螺旋线 import turtle turtle.setup(600,300,200,200) turtle.pensize(1) turtle.color('green') i=0 w ...
- 【Python学习】程序运行完发送邮件提醒
有时候我们运行一个需要跑很长时间的程序,不管是在云主机还是本地主机上运行,我们都不可能一直守在电脑面前等.所以想到使用邮件来通知提醒. 示例代码如下 # -*- coding: utf-8 -*- # ...
- Python简易购物车程序
2019年5月24日,是我离开北京回学校的日子.我退了组的房子,辞了工作,带着对小秋香不舍回家,这匆匆一别,不知何时才是归期. 这几天都疏于学习,因为每一天我都会和她找点有意思的事情来做,如果这一别就 ...
- python学习-44 程序的解耦 (不是特别懂的,回头在复习)
import os def file_handler(backend_data,res=None,type='fetch'): # 查询功能 if type == 'fetch': with open ...
- python学习:购物车程序
购物车程序 product_list = [ ('mac',9000), ('kindle',800), ('tesla',900000), ('python book',105), ('bike', ...
- Python学习笔记四:列表,购物车程序实例
列表 切片 中括号,逗号分隔,可以一次取出多个元素,起始位置包括,结束位置不包括(顾头不顾尾) 如果取最后一个,而且不知道列表长度,可以使用负数(-1是最后一个,以此类推) 如果取最后几个,记住从左往 ...
随机推荐
- JavaScript高级程序设计-读书笔记(6)
第20章 JSON JSON是一个轻量级的数据格式,可以简化表示复杂数据结构的工作量 JSON的语法可以表示一下三种类型的值 l 简单值:使用与JavaScript相同的语法,可以在JS ...
- 什么是ZooKeeper(一)(通俗易懂)
以前在做别的项目时用过zk,但没有过多深入的学习,本着通俗易懂.简单方便学习成本低的方式,建议大家耐心看完,如果文章中有不清楚的地方,可发私信进步探讨! 学习zk共分为二部分,第一部分主要以理论为主. ...
- ***使用jQuery去封装插件(组件化、模块化的思想),即扩展方法
如何使用jQuery去封装插件,区分扩展全局方法与扩展一个普通的jQuery实例对象的方法 1.给全局对象扩展方法:①$.方法 = function(参数可加可不加){} ②使用:$.方法(有参数的 ...
- write 系统调用耗时长的原因
前一阵子公司一部门有人叫帮忙调查,说他们write系统调用基本上是个位数微秒就返回,或者说几十us,但偶尔出现几次write系统调用达到几百毫秒和情况.大家都知道,通过vfs进行write,都是写写到 ...
- proxy-target-class 作用
该属性值默认为false,表示使用JDK动态代理织入增强;当值为true时,表示使用CGLib动态代理织入增强;但是,即使设置为false,如果目标类没有生命接口, 则Spring将自动使用CGLib ...
- windows下使用selenium报错selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH
问题 :执行程序代码报错: WebDriverException:Message:'geckodriver'executable needs to be in Path 或者 selenium.com ...
- H3C WA2610i-GN FitAP telnet打开
在ac上面:sys_hidecmd 隐藏模式wlan ap ap1 exec-control enable ##目前为disable状态wlan ap ap1 telnet enable ##目前为e ...
- Mysql加载配置默认路径
查看命令 mysqld --verbose --help|grep "Default options" -n1 输出结果 11-12:Default options are rea ...
- Annotation方式实现AOP
1.添加其他jar包 2.配置applicationContext.xml文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <?xml version=&quo ...
- ES6入门之对象扩展
ES5对象(超类)原有: 属性:construct构造函数 方法: object.hasOwnProperty( propertyName ) //检测是否有一个本地的属性而不是继承的,返回boole ...