#! /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. Docker 学习基本操作与守护式容器

    Docker 学习基本操作与守护式容器 容器操作 运行容器 docker run --name指定名字 -istdin -ttty虚拟终端 在终端中用 exit 即可退出容器,并结束运行 查看容器 p ...

  2. thinkphp5开发restful-api接口学习 教程视频 接口文档

    目录 1. 获取验证码 2. 用户注册 3. 用户登录 4. 用户上传头像 5. 用户修改密码 6. 用户找回密码 7. 用户绑定手机号 8. 用户绑定邮箱 9. 用户绑定用户名(手机/邮箱) 10. ...

  3. python中字符串的一些用法

    一.字符串的拼接:      a=‘123’      b=‘abc’       d=‘hello world’ 1.print(a+b) 2.print(a,b) 3. c=‘ ’.join((a ...

  4. LeetCode(165) Compare Version Numbers

    题目 Compare two version numbers version1 and version2. If version1 > version2 return 1, if version ...

  5. 在spring boot中使用webSocket组件(二)

    该篇演示如何使用websocket创建一对一的聊天室,废话不多说,我们马上开始! 一.首先先创建前端页面,代码如下图所示: 1.login.html <!DOCTYPE html> < ...

  6. golang连接orcale

    使用glang有一段时间了,最开始其实并不太喜欢他的语法,但是后来熟悉之后发现用起来还挺爽的.之前数据库一直使用mysql,连接起来没有什么问题,github上有很多完善的驱动,所以以为连接其他数据库 ...

  7. JAVA 基础--final 关键字的用法

    在java中,final的含义在不同的场景下有细微的差别,in a word,它指的是“不可变的” 1.修饰数据.这里的可以看到被final修饰的变量,值不能被改变,但是 package FinalT ...

  8. Selenium WebDriver- actionchians模拟鼠标悬停操作

    #encoding=utf-8 import unittest import time from selenium import webdriver from selenium.webdriver i ...

  9. Selenium WebDriver-通过断言页面是否存在某些关键字来确定页面按照预期加载

    #encoding=utf-8 import unittest import time import chardet from selenium import webdriver class Visi ...

  10. TOJ 3581: 最简IPv6表示

    3581: 最简IPv6表示  Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByteTotal Submit: 121   ...