python 购物车小程序

功能要求:
1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表
2、允许用户根据商品编号购买商品
3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
4、可随时退出,退出时,打印已购买商品和余额
5、在用户使用过程中,
关键输出,如余额,商品已加入购物车等消息,需高亮显示 一、思路导图

二、代码实现

 #!/usr/bin/env python3
# -*- coding:utf-8 -*-
# Author: davie
"""
功能要求:
1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表
2、允许用户根据商品编号购买商品
3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
4、可随时退出,退出时,打印已购买商品和余额
5、在用户使用过程中,
关键输出,如余额,商品已加入购物车等消息,需高亮显示
"""
product_list = [
{"name":"电脑","price": 1999},
{"name":"鼠标","price": 10},
{"name":"游艇","price": 20},
{"name":"美女","price": 998},
{"name":"watch","price":10600},
{"name":"iphone","price":8800},
{"name":"mac pro","price":14000}
]
shopping_list = []
username = 'davie'
password= 'davie123'
user_info = {"username":"davie","password":"davie123","salary":30000}
print("----------欢迎登陆----------")
_username = input("请输入您的用户名: ").strip()
_password = input("请输入您的密码: ").strip()
if _username == user_info["username"] and _password == user_info["password"]:
salary = input("请输入你的薪资: ").strip()
if salary.isdigit():
salary = int(salary)
while True:
print("---------商品列表--开始------------")
for idx, item in enumerate(product_list):
print(idx, item)
print("---------商品列表--结束------------")
user_choice = input("请输入选择商品编号,输入q退出: ")
if user_choice.isdigit():
user_choice = int(user_choice)
if user_choice >=0 and user_choice<len(product_list):
p_item = product_list[user_choice]
if p_item["price"] <= salary:
shopping_list.append(p_item)
salary -= p_item["price"]
print("已经将%s添加到您的购物车了,你的余额是 \033[0;31m%s\033[0m元"%(p_item,salary))
else:
print("你的余额还剩下: \033[31m%s\033[0m元; 无法购买:%s; "%(salary,p_item),'还差: \033[0;31m%s\033[0m元'%(p_item["price"]-salary))
else:
print("\033[31m你选择的商品不存在!\033[0m,请重新选择: ")
if user_choice == "q" or user_choice == "Q":
print("\033[31m你选择了退出...\033[0m")
print("------------\033[34m你已经购买了如下商品-开始\033[0m-------------")
for idx, shopping_good in enumerate(shopping_list):
print(idx, shopping_good)
print("你当前的余额为:\033[36m%s元\033[0m" % (salary))
print("------------\033[34m你已经购买了如上商品-结束\033[0m-------------")
exit("已结束...")
elif user_choice == "q" or user_choice == "Q":
print("\033[31m你选择了退出...\033[0m")
print("------------\033[34m你已经购买了如下商品-开始\033[0m-------------")
for idx, shopping_good in enumerate(shopping_list):
print(idx, shopping_good)
print("你当前的余额为:\033[36m%s元\033[0m" % (salary))
print("------------\033[34m你已经购买了如上商品-结束\033[0m-------------")
exit("已结束...")
else:
print("你输入的参数无效,已结束!")
print("------------\033[34m你已经购买了如下商品-开始\033[0m-------------")
for idx, shopping_good in enumerate(shopping_list):
print(idx, shopping_good)
print("你当前的余额为:\033[36m%s元\033[0m" % (salary))
print("------------\033[34m你已经购买了如上商品-结束\033[0m-------------")
break
else:
print("\033[0;31m对不起,登陆失败!\033[0m")
												

python 购物车小程序的更多相关文章

  1. python 购物车小程序(列表、循环、条件语句)

    goods = [ ['iphone6s', 5800], ['mac book', 9000], ['coffee', 32], ['python book', 80], ['bicyle', 15 ...

  2. 第五篇:python购物车小程序开发demo

    功能:自定义工资水平,可选商品加购余额实时提醒用到的知识点:列表.if多分支.循环.高亮输出未解决bug删除商品后不能自动退出 代码如下: if shopping_list: shopping_lis ...

  3. [作业] Python入门基础---购物车小程序

    1.购物车小程序: 1.1用户输入工资取60% 1.2打印输出商品菜单 1.3由用户输入数字选择 #__author:Mifen #date: 2018/11/27 # 购物车程序 #把工资作为账户的 ...

  4. python3 购物车小程序,余额写入文件保存

    python3 购物车小程序,余额写入文件保存 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan goods = ( ...

  5. Day2:购物车小程序

    一.购物车小程序第一版 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan product_list = [ (&quo ...

  6. python购物车小案例

    python购物车小案例# 案列描述:有一个小型水果店里面有水果(苹果:¥8/kg,香蕉:¥5/kg,芒果:¥15/kg,葡萄:¥12/kg),客户带了100元钱进店选购水果.# 1.客户输入相应序号 ...

  7. 一个python爬虫小程序

    起因 深夜忽然想下载一点电子书来扩充一下kindle,就想起来python学得太浅,什么“装饰器”啊.“多线程”啊都没有学到. 想到廖雪峰大神的python教程很经典.很著名.就想找找有木有pdf版的 ...

  8. appium+python 微信小程序的自动化

    sudo kill -9 $(lsof -i:8889 -t) mitmweb -p 8889 -s addons.py mitmdump -q  -p 8889 -s addons.py http: ...

  9. Python基本小程序

    目录 Python基本小程序 一.筛选从1-100所有的奇数 二.筛选从0-100所有的偶数 三.求1-100之间所有的偶数和,奇数和 四.三个数由小到大输出 五.四个数字重复数字的三位数 Pytho ...

随机推荐

  1. class前置声明

    https://www.cnblogs.com/King-Gentleman/p/5081159.html 当两个头文件互相包含的时候,类定义会编译出错,这时需要分别添加上对应的类声明 #includ ...

  2. Introduction to Dynamic SQL

    The idea of using dynamic SQL is to execute SQL that will potentially generate and execute another S ...

  3. codeforces740B

    Alyona and flowers CodeForces - 740B Little Alyona is celebrating Happy Birthday! Her mother has an ...

  4. jquery 循环绑定click的问题

    之前循环数据,通过live绑定click, 发觉每个click绑定的链接参数都是一样的. 后来改用 直接的 click绑定,就好了. $.each(ship.PPRList, function (i, ...

  5. Elasticsearch 中数据类型 text 与 keyword 的区别

    随着ElasticSearch 5.X 系列的到来, 同时也迎来了该版本的重大特性之一: 移除了string类型. 这个变动的根本原因是string类型会给我们带来很多困惑: 因为ElasticSea ...

  6. Python中的numpy模块解析

    numpy 1.  创建对象 维度(dimensions):轴 轴的个数:秩(rank) Numpy最重要的一个特点就是其N维数组对象(即ndarray) 创建数组最简单的函数就是用array函数: ...

  7. codeforces 242E - XOR on Segment (线段树 按位数建树)

    E. XOR on Segment time limit per test 4 seconds memory limit per test 256 megabytes input standard i ...

  8. C#版本和.NET版本以及VS版本的对应关系

    C#版本和.NET版本以及VS版本的对应关系 版本 .NET Framework版本 Visual Studio版本 发布日期 特性 C# 1.0 .NET Framework 1.0 Visual ...

  9. MT【268】投篮第一次很重要

    已知 $r_1=0,r_{100}=0.85,(r_k$ 表示投 k 次投中的概率.)求证:(1)是否存在$n_0$使得$r_{n_0}=0.5$ (2)是否存在$n_1$使得$r_{n_1}=0.8 ...

  10. MT【265】a+b,ab

    已知$a+b=1$,求$(a^3+1)(b^3+1)$的最大值_____ $(a^3+1)(b^3+1)=a^3+b^3+a^3+b^3+1$ $=(a+b)^3(a^2+b^2-ab)+a^3b^3 ...