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

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

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

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

# Author: zfh
#-*-coding:utf-8-*-
product_list = [
('Oracle book',100),
('pencil', 10),
('rule',100),
('iphone',2000),
('box',200)
]
shopping_list = []
shopping_cost = 0
shopping_num = 0
i = 0
while i < 3 :
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("Please choice >>>:")
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:
shopping_list.append(p_item)
salary -= p_item[1]
shopping_cost += p_item[1]
shopping_num += 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]" % salary)
else:
print("商品不存在,请重新选择!".center(50,'-'))
elif user_choice == 'q':
print("shopping_list".center(50,'-'))
for p in shopping_list:
print(p)
print("共花费 %s 元," % shopping_cost,"共购买件 %s 商品" % shopping_num)
print("Your current balance:",salary)
exit()
else:
print("invalid option".center(50,'-'))
else:
print("输入错误,请重新输入金额".center(50,'-'))
i += 1

Python学习第二天-编写购物车的更多相关文章

  1. Python学习(一):编写购物车

    1.购物车流程图: 2.代码实现: #!/usr/bin/env python #coding=utf-8 ChoiceOne =''' 1.查看余额 2.购物 3.退出 ''' ChoiceTwo ...

  2. Python学习第二天-编写三级菜单

    编写三级菜单:1. 运行程序输出第一级菜单2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单3. 菜单数据保存在文件中4. 让用户选择是否要退出5. 有返回上一级菜单的功能 # Author: z ...

  3. python学习第二讲,pythonIDE介绍以及配置使用

    目录 python学习第二讲,pythonIDE介绍以及配置使用 一丶集成开发环境IDE简介,以及配置 1.简介 2.PyCharm 介绍 3.pycharm 的安装 二丶IDE 开发Python,以 ...

  4. python学习第二次笔记

    python学习第二次记录 1.格式化输出 name = input('请输入姓名') age = input('请输入年龄') height = input('请输入身高') msg = " ...

  5. Python学习-第二天-字符串和常用数据结构

    Python学习-第二天-字符串和常用数据结构 字符串的基本操作 def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1 ...

  6. python学习第二天 -----2019年4月17日

    第二周-第02章节-Python3.5-模块初识 #!/usr/bin/env python #-*- coding:utf-8 _*- """ @author:chen ...

  7. Python学习笔记-练习编写ATM+购物车(购物商城)

    作业需求: 模拟实现一个ATM + 购物商城程序: 1.额度 15000或自定义 2.实现购物商城,买东西加入 购物车,调用信用卡接口结账 3.可以提现,手续费5% 4.支持多账户登录 5.支持账户间 ...

  8. Python学习第二节——基础知识

    # !/usr/bin/edv python    脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它.# -*- coding:UTF-8 -*-    标明编码注释 ...

  9. Python 学习第二章

    本章内容 数据类型 数据运算 表达式 if ...else 语句 表达式 for 循环 表达式 while 循环 一.数据类型 在内存中存储的数据可以有多种类型. 在 Python 有五个标准的数据类 ...

随机推荐

  1. python的装饰器,迭代器用法

    装饰器. 装饰器实际就是一个函数 定义:在不改变内部代码和调用方式的基础上增加新的功能 了解装饰器需要了解3个内容: 1.函数即变量 2.高阶函数 1).把一个函数名当作实参传给另一个函数 2).返回 ...

  2. 马上着手开发 iOS 应用程序

    https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOSCh/chapters/Introd ...

  3. Vue - vue.js 常用指令

    Vue - vue.js 常用指令 目录: 一. vuejs模板语法之常用指令 1. 常用指令: v-html 2. 常用指令: v-text 3. 常用指令: v-for 4. 常用指令: v-if ...

  4. 20121124.Nodejs创建HTTP程序.md

    ####1.源代码: var http=require('http');//读取http模块    http.createServer(function(req,res){//创建一个服务,接受一个回 ...

  5. 【【henuacm2016级暑期训练】动态规划专题 M】Little Pony and Harmony Chest

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 每一位显然只要取1..60这些数字. 然后需要保证每个这些数字里面,每个数字所用到的质因子都它所唯一拥有的.别人不能用 因为如果别人 ...

  6. 使用 Xshell 连接 linux 系统

    一.下载 Xshell 链接:https://pan.baidu.com/s/1htwqpzm 密码:zau7 二.安装 Xshell 无脑下一步就可以了 三.连接 linux 四.安装 Xftp h ...

  7. jquery-layer.closeAll不执行的错觉

    在使用ajax.form提交的时候,弹出了layer插件的页面,于是我想使用layer插件提供的layer.closeAll()方法讲这个弹出的页面关闭,但是尝试了很久不行,到底是为什么呢? 过了一段 ...

  8. 洛谷 P3047 [USACO12FEB]附近的牛Nearby Cows

    P3047 [USACO12FEB]附近的牛Nearby Cows 题目描述 Farmer John has noticed that his cows often move between near ...

  9. LeetCode104_MaximumDepthofBinaryTree Java题解

    题目: Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the ...

  10. 一起talk C栗子吧(第一百一十二回:C语言实例--线程同步概述)

    各位看官们,大家好.上一回中咱们说的是线程间通信的样例,这一回咱们说的样例是:线程同步.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,提到同步.我想大家都不陌生,由于我们在前面章回中介绍 ...