#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "DaChao"
# Date: 2017/6/7 #! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "DaChao"
# Date: 2017/6/10 '''
要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
附加:可充值、某商品移除购物车
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
''' def shangpin():
'''
打印商品列表及序号,并价格赋值
:return:
'''
num = 1
for n_p in goods:
print(num,n_p["name"],n_p['price'])
p_goods.append(n_p['price'])
num+=1 def choose_1():
'''
打印购物选择
:return:
'''
tips_1 = ["Continue shopping!", "Go payment!"]
num = 1
for n_p in tips_1:
print(num,tips_1[num-1])
num+=1 def choose_2():
'''
打印金额不足选择
:return:
'''
tips_2 = ["Go recharge!","Go to remove goods!"]
num = 1
print("Your money are not enough!")
for n_p in tips_2:
print(num, tips_2[num - 1])
num += 1 def goods_list():
'''
显示购物车功能
:return:
'''
if goods_1 != 0:
print("已购买电脑数量: ",goods_1)
if goods_2 != 0:
print("已购买鼠标数量: ",goods_2)
if goods_3 != 0:
print("已购买游艇数量: ",goods_3)
if goods_4 != 0:
print("已购买美女数量: ",goods_4) if __name__ == '__main__':
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
p_goods = []
money_bsum = 0
g_goods = []
goods_1 = 0
goods_2 = 0
goods_3 = 0
goods_4 = 0
num = 0 money_sum = int(input("Please input your total money in your wallet: ")) tag_1 = True
while tag_1: #商品购物
shangpin()
num = int(input("Please choose your favorite goods of id: "))
if num in range(1,5): #选择商品,购物总价叠加,并加入新购物列表,以便移除.
money_bsum = money_bsum + int(p_goods[num-1])
if num == 1:
goods_1 += 1
print("电脑 加入购物车!目前数量: ", goods_1)
elif num == 2:
goods_2 += 1
print("鼠标 加入购物车!目前数量: ", goods_2)
elif num == 3:
goods_3 += 1
print("游艇 加入购物车!目前数量: ", goods_3)
elif num == 4:
goods_4 += 1
print("美女 加入购物车!目前数量: ", goods_4)
else:
print("Please input correct ID.")
choose_1()
choose_id = input("1 & 2 ?")
if choose_id == "":
tag_1 = False tag_2 = True
while tag_2: #支付选择,如果余额不足,充值或移除商品至支付成功。
if money_bsum <= money_sum:
print("Pay successful!")
tag_2 = False
else :
choose_2()
choose_id = input("1 & 2 ?")
if choose_id == "":
money_sum += int(input("Please input your recharge money: "))
elif choose_id == "":
goods_list()
shangpin()
while tag_2:
num_del = int(input(print("Please choose your del goods of id: ")))
if num_del == 1 and goods_1 != 0:
goods_1 -= 1
money_bsum -= 1999
if money_bsum <= money_sum:
tag_2 = False
elif num_del == 2 and goods_2 != 0:
goods_2 -= 1
money_bsum -= 10
if money_bsum <= money_sum:
tag_2 = False
elif num_del == 3 and goods_3 != 0:
goods_3 -= 1
money_bsum -= 20
if money_bsum <= money_sum:
tag_2 = False
elif num_del == 1 and goods_4 != 0:
goods_4 -= 1
money_bsum -= 998
if money_bsum <= money_sum:
tag_2 = False
print("You can offord your shopping!")

Day 16 购物车的更多相关文章

  1. Python 入门基础16 -- ATM + 购物车

    ATM + 购物车 1.需求分析 2.设计程序以及程序的架构 设计程序的好处: - 扩展性强 - 逻辑清晰 3.分任务开发 4.测试 黑盒: 白盒: 对程序性能的测试 5.上线运行 # Tank -- ...

  2. 12月16日 增加一个购物车内product数量的功能, 自定义method,在helper中定义,计算代码Refactor到Model中。

    仿照Rails实战:购物网站 教材:5-6 step5:计算总价,做出在nav上显示购物车内product的数量. 遇到的❌: 1. <% sum = 0 %> <% current ...

  3. PHP之购物车的代码

    该文章记录了购物车的实现代码,仅供参考 book_sc_fns.php <?php include_once('output_fns.php'); include_once('book_fns. ...

  4. 使用session页面控制登录入口及购物车效果的实现

          由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容.实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只 ...

  5. js抛物线动画——加入购物车动效

    参考文章:http://www.zhangxinxu.com/wordpress/2013/12/javascript-js-元素-抛物线-运动-动画/ parapola.js /*! * by zh ...

  6. iOS_一个购物车的使用

    这个项目是本人原创:要转载,请说明下:http://www.cnblogs.com/blogwithstudyofwyn/p/5618107.html 项目的地址:https://github.com ...

  7. javascript仿天猫加入购物车动画效果

    javascript仿天猫加入购物车动画效果   注意:首先需要声明的是:代码原思路不是我写的,是在网上找的这种效果,自己使用代码封装了下而已:代码中都有注释,我们最主要的是理解抛物线的思路及在工作中 ...

  8. [转]一步一步asp.net_购物车订单与支付宝

    本文转自:http://www.cnblogs.com/mysweet/archive/2012/05/19/2508534.html 最近这几天很忙,一边忙着准备一堆课程设计(8门专业课.....伤 ...

  9. php 购物车的例子

    网上搜到的,简单容易理解.cookie存购物车ID,db存购物车数据. //购物车session的产生代码   1 if(! $session && ! $scid) {    2 / ...

随机推荐

  1. [bzoj]1003: [ZJOI2006]物流运输

    Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格 ...

  2. python列表之append与extend方法比较

    append和extend是列表的两种添加元素方式,但这两种方式却又有些不同之处.那么不同之处在哪里呢,我们通过对二者的定义和实例来看一看. list.append() 1.定义:L.append(o ...

  3. linux centos 下ssh的连接

    参考链接 虚拟机下CentOS7开启SSH连接 记录 我用finalssh连接virtualbox里的centos,发现报出java.net.UnknownHostException 一开始我以为是s ...

  4. java实现验证码功能

    java实现验证码功能 通过java代码实现验证码功能的一般思路: 一.通过java代码生成一张验证码的图片,将验证码的图片保存到项目中的指定文件中去,代码如下: package com.util; ...

  5. python面试题之python多线程与多进程的区别

    多线程可以共享全局变量,多进程不能 多线程中,所有子线程的进程号相同,多进程中,不同的子进程进程号不同 线程共享内存空间:进程的内存是独立的 同一个进程的线程之间可以直接交流:两个进程想通信,必须通过 ...

  6. Windows Bash on Ubuntu

    windows Bash on Ubuntu, 之前就是尝试一下,更多是在不安装虚拟机的情况下,学下 bash. 这几天,在 上面 make u-boot,这个用起来比 cygwin方便多了. 之前在 ...

  7. 汇编语言 Part 2——寄存器

    处理器操作主要涉及处理数据.这些数据可以存储在内存中并从中访问.但是,读取数据并将其存储到内存中会减慢处理器的速度,因为它涉及将数据请求通过控制总线发送到内存存储单元并通过同一通道获取数据的复杂过程. ...

  8. 带权并查集:HDU3172-Virtual Friends

    Virtual Friends Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...

  9. oracle整体结构-内存结构、物理结构、逻辑结构、进程

    Oracle的体系结构大体上分为两部分:Instance(实例)和Database(数据库). Instance(实例) :在Oracle Instance中主要包含了SGA以及一些进程(例如:PMO ...

  10. [POJ 1003] Hangover C++解题

        Hangover Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 95164   Accepted: 46128 De ...