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. Web API 2 添加Models and Controllers Part 2.

    在方案中找到Models文件夹,右键添加类,命名为Author. Author.cs 替换以下代码 C# using System.Collections.Generic; using System. ...

  2. 如何创建djiago项目和djiago连接数据库

    介绍 主要介绍在python中如何使用pycharm创建djiago项目以及如何将djiago项目和mysal数据库连接起来 创建djiago项目 1.使用pycharm创建djiao项目 点击pyc ...

  3. C#使用读写锁解决多线程并发写入文件时线程同步的问题

    读写锁是以 ReaderWriterLockSlim 对象作为锁管理资源的,不同的 ReaderWriterLockSlim 对象中锁定同一个文件也会被视为不同的锁进行管理,这种差异可能会再次导致文件 ...

  4. 安卓Android基础—第二天

    测试的相关概念 好的软件不是开发出来的,是不断测试出回来的 根据是否知道源代码 黑盒测试 白盒测试 根据测试的粒度 方法测试 单元测试 集成测试 系统测试 根据测试的暴力程度 压力测试(谷歌工程师提供 ...

  5. Codeforces264 B. Good Sequences

    Codeforces题号:#264B 出处: Codeforces 主要算法:DP 难度:4.8 思路分析: 这题DP太难了…… 最终的解法是,令f[i]表示存在因子i的一个数作为子序列结尾的子序列的 ...

  6. bzoj 2957 楼房重建 (线段树+思路)

    链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2957 思路: 用分块可以很简单的过掉,但是这道题也可以用线段树写. 分类讨论左区间最大值对 ...

  7. thinkPHP框架5.0 类图下载

    thinkPHP5.0 类图下载

  8. 让$this->error()返回json配置

    // 表单请求类型伪装变量'var_method' => '_method',// 表单ajax伪装变量'var_ajax' => '自定义',// 表单pjax伪装变量'var_pjax ...

  9. 「AtCoder Grand018A」Getting Difference(GCD)

    题目链接A - Getting Difference 题意 有n(1~\(10^5\))个数\(A_i\) (1~\(10^9\)),每次选两个数,将它们的差的绝对值加入这堆数.问k(1~\(10^9 ...

  10. 09 Zabbix4.0系统clone、mass update使用

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 09 Zabbix4.0系统clone.mass update使用 1. clone使用: clo ...