问题需求:

1、启动程序,让用户输入工资,然后打印商品列表

2、允许用户根据商品编号购买商品

3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒

4、可随时退出,退出时,打印已购买的商品和余额

 __author__ = 'jcx'

 product_list = [
('iphone11',5000),
('macbook pro',9800),
('Bike',800),
('Coffee',31),
('jcx\'s C++',60),
] shoping_list = []
salary = input("Input your salary: ")
if salary.isdigit():
salary = int(salary)
while True:
for index,item in enumerate(product_list):
print(index,item)
user_choice = input("选择要买的商品>>>: ")
if user_choice.isdigit():
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: #买得起
shoping_list.append(p_item)
salary -= p_item[1]
print("Added %s into shopping cart, your current balance is \033[31;1m%s\033[0m" % (p_item,salary))
else:
print("\033[41;1m你的余额只剩[%s]\033[0m" % salary)
else:
print("product number [%s] is not exist." % user_choice)
elif user_choice == 'q':
print("------ shoping list -------")
for p in shoping_list:
print(p)
print("You current balance: \033[31;1m%s\033[0m" % salary)
exit()
else:
print("invalid option")

输出结果:

 Input your salary: 6000
0 ('iphone11', 5000)
1 ('macbook pro', 9800)
2 ('Bike', 800)
3 ('Coffee', 31)
4 ("jcx's C++", 60)
选择要买的商品>>>: 0
Added ('iphone11', 5000) into shopping cart, your current balance is 1000
0 ('iphone11', 5000)
1 ('macbook pro', 9800)
2 ('Bike', 800)
3 ('Coffee', 31)
4 ("jcx's C++", 60)
选择要买的商品>>>: 6
product number [6] is not exist.
0 ('iphone11', 5000)
1 ('macbook pro', 9800)
2 ('Bike', 800)
3 ('Coffee', 31)
4 ("jcx's C++", 60)
选择要买的商品>>>: q
------ shoping list -------
('iphone11', 5000)
You current balance: 1000 Process finished with exit code 0

Python学习——购物车程序的更多相关文章

  1. Python学习-购物车程序

    程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...

  2. python复习购物车程序

    个人学习总结: 无他,唯手熟尔!多敲多练才是王道 python 第三课 元组的灵活运用&字符串的诸多操作 Program01 '''时间 2018年2月12日12:15:28目的 购物车程序 ...

  3. Python初探-购物车程序

    要求: 1,用户进入后,有欢迎语并提示用户输入本金 2.用户输入正确的内容后有购物菜单显示给用户 3.当用户的本金不足以购买商品的时候有提示余额不足并告知差额 4.成功购物后提示已购买内容和购买后的余 ...

  4. Python学习--课本程序练习(周更)

    1.绘制正方形螺旋线 import turtle turtle.setup(600,300,200,200) turtle.pensize(1) turtle.color('green') i=0 w ...

  5. 【Python学习】程序运行完发送邮件提醒

    有时候我们运行一个需要跑很长时间的程序,不管是在云主机还是本地主机上运行,我们都不可能一直守在电脑面前等.所以想到使用邮件来通知提醒. 示例代码如下 # -*- coding: utf-8 -*- # ...

  6. Python简易购物车程序

    2019年5月24日,是我离开北京回学校的日子.我退了组的房子,辞了工作,带着对小秋香不舍回家,这匆匆一别,不知何时才是归期. 这几天都疏于学习,因为每一天我都会和她找点有意思的事情来做,如果这一别就 ...

  7. python学习-44 程序的解耦 (不是特别懂的,回头在复习)

    import os def file_handler(backend_data,res=None,type='fetch'): # 查询功能 if type == 'fetch': with open ...

  8. python学习:购物车程序

    购物车程序 product_list = [ ('mac',9000), ('kindle',800), ('tesla',900000), ('python book',105), ('bike', ...

  9. Python学习笔记四:列表,购物车程序实例

    列表 切片 中括号,逗号分隔,可以一次取出多个元素,起始位置包括,结束位置不包括(顾头不顾尾) 如果取最后一个,而且不知道列表长度,可以使用负数(-1是最后一个,以此类推) 如果取最后几个,记住从左往 ...

随机推荐

  1. python 函数map()、filter()、reduce()

    map()函数    将一个列表进行遍历,对每一个字符串进行处理: 例如: num_list = ["我","是","哈哈","太 ...

  2. Springboot配置文件内容加密

      使用的是jasypt-spring-boot-starter,具体介绍可以参考 https://gitee.com/yangziyi2017/Jasypt-Spring-Boot   引入依赖 & ...

  3. Hive的原理和基本用法

    一.Hive的概述 1.Hive的定义 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL进行数据读取.写入和管理. 2.Hive的架构图 hive ...

  4. dedeCMS网站栏目管理---释义

    一.常规选项 文件保存目录:可以指定保存的目录,也可以用拼音,指定为拼音时系统会自动生成栏目拼音的目录,文件保存目录一般用拼音即可. 目录相对位置:有上级目录,CMS目录与站点根目录.实际上指的都是网 ...

  5. 053、Java中使用for循环实现1~100的累加

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  6. python记事本实现查询替换

    python 大作业 自己写了记事本  也参考网上的  查询会有点问题 替换没问题 # encoding=utf- from tkinter import * from tkinter.filedia ...

  7. servlet3.0的文件上传代码配置怎么写

    之前学习过xml配置servlet3.0的文件上传,但是变成code方式一直不知道怎么弄,相比较起来apache的文件上传配置和xml倒是没什么太大区别. 直接上代码:无需依赖,只要一个方法就好了cu ...

  8. VMware CentOS网络配置

  9. Java多线程之Java内存模型

    如果要了解Java内存模型,就得对多线程的三大特性有初步的了解. 1.原子性:独一无二.一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行.比如i = i+1:其中就包 ...

  10. android 动画基础绘——view 动画(二)[补]

    前言 这个是对view 动画的补充,是一些view 动画的特殊使用场景. 回顾第一篇关于view 动画的,我介绍到view的动画都是针对元素本身的. 当我们开发view动画的时候,我们看到几个元素在做 ...