这几天,一直在学python,跟着视频老师做了一个比较简单的python购物车,感觉不错,分享一下

 products = [['Iphone8',6888],['MacPro',14800],['小米6',2499],['Coffee',31],['Book',80],['Nike Shoes',799]]

 shopping_cart = []
#run_flag = True #标志位
exit_flag = False
while not exit_flag:
print("---------商品列表------------")
for index,p in enumerate(products):
print("%s, %s %s" %(index,p[0],p[1] )) choice = input("请输入你要买的商品编号:")
if choice.isdigit(): #判断是不是str类型
choice = int(choice)
if choice >= 0 and choice < len(products):
shopping_cart.append(products[choice])
print("Add product %s into shopping_cart." %(products[choice]))
else:
print("该商品的编号不存在")
elif choice == 'q':
if len(shopping_cart) >0:
print("-------你已经购买以下商品--------")
for index,p in enumerate(shopping_cart) :
print("%s, %s %s" % (index, p[0], p[1])) #break
#run_flag = False
exit_flag = True

第二个是我在上网找来的,不过改优化了一点点

   

 #!/usr/bin/env.python
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: shopping
Description :
Author : lwh
date: 2019/2/28
------------------------------------------------- -------------------------------------------------
""" #定义一个商品的列表
product_list = [
('iphone',5000),
('coffee',31),
('bicyle',888),
('iwatch,2666'),
('Mac Pro',15000),
('book',88)] shopping_list = [] #空列表,存放购买的商 money = input("请输入你的工资:")
if money.isdigit(): # isdigit() 用来检#检测字符串是否只由数字组成,是则返回True,否则False
money = int(money) while True:
for index,i in enumerate(product_list): #index作为下标索引
# enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
print(index,i[0],i[1]) #qi'qin
user_choice = input("请输入你要购买的商品: ")
if user_choice.isdigit() : #判断
user_choice = int(user_choice)
if user_choice < len(product_list) and user_choice >= 0:
product_choice = product_list[user_choice]
if product_choice[1] < money: #买得起
shopping_list.append(product_choice) # 买得起,就放入购物车
money -= product_choice[1]
print("添加 %s 到你的购物车了,你的余额为 : \033[31;1m%s\033[0m" % (product_choice, money))
else:
print("\033[41;1m你的余额只剩%s啦,不够买该商品,请重新选择!\033[0m" % money)
print("-----------购 物 车------------")
for s_index, s in enumerate(shopping_list):
print(s_index,s)
print("-----------商 品------------")
print("你的余额为:\033[31;1m%s\033[0m" % money)
else:
print("没有这个商品")
elif user_choice == "q" :
print("-------购 物 清 单---------")
for s_index,s in enumerate(shopping_list):
print(s_index,s)
print("-----------购 物 清 单------------")
print("你的余额为 : \033[31;lm%s\033[0m" % money)
exit()
else:
print("输入错误,没有这个商品,请重新输入: ")
else:
print("输入错误,请重新输入: ")

第二个购物车原码网站:https://www.cnblogs.com/cxylff/p/8468500.html

简单的python购物车的更多相关文章

  1. python实现简单的循环购物车小功能

    python实现简单的循环购物车小功能 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s&quo ...

  2. 完成一段简单的Python程序,使用函数实现用来判断输入数是偶数还是奇数

    #!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,使用函数实现用来判断偶数和奇数'''def number_deal(a): if a%2==0 ...

  3. 完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能

    #!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能'''try: a=int(raw_input(" ...

  4. 简单的python http接口自动化脚本

    今天给大家分享一个简单的Python脚本,使用python进行http的接口测试,脚本很简单,逻辑是:读取excel写好的测试用例,然后根据excel中的用例内容进行调用,判断预期结果中的返回值是否和 ...

  5. 简单说明Python中的装饰器的用法

    简单说明Python中的装饰器的用法 这篇文章主要简单说明了Python中的装饰器的用法,装饰器在Python的进阶学习中非常重要,示例代码基于Python2.x,需要的朋友可以参考下   装饰器对与 ...

  6. 带你简单了解python协程和异步

    带你简单了解python的协程和异步 前言 对于学习异步的出发点,是写爬虫.从简单爬虫到学会了使用多线程爬虫之后,在翻看别人的博客文章时偶尔会看到异步这一说法.而对于异步的了解实在困扰了我好久好久,看 ...

  7. 一个简单的python爬虫程序

    python|网络爬虫 概述 这是一个简单的python爬虫程序,仅用作技术学习与交流,主要是通过一个简单的实际案例来对网络爬虫有个基础的认识. 什么是网络爬虫 简单的讲,网络爬虫就是模拟人访问web ...

  8. python 购物车小程序

    python 购物车小程序 功能要求:1.启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表2.允许用户根据商品编号购买商品3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒4. ...

  9. 【转】简单谈谈python的反射机制

    [转]简单谈谈python的反射机制 对编程语言比较熟悉的朋友,应该知道“反射”这个机制.Python作为一门动态语言,当然不会缺少这一重要功能.然而,在网络上却很少见到有详细或者深刻的剖析论文.下面 ...

随机推荐

  1. C# 链表去重 List 一维 二维 分别使用 Distinct() GroupBy() 方法

    分别使用List中Distinct(),GroupBy()实现链表的去重. 1.先上效果: 一维链表中分别有元素“aa”,"bb",'aa','aa',"cc" ...

  2. Keepalived配置文件详解

    global_defs { router_id LVS_$prio #节点唯一标识,通常为hostname } local_address_group laddr_g1 { ${lvs_node} # ...

  3. 基于PLC1850平台的ARP包请求与响应

    一.以太网ARP报文格式 ①.以太网目的地址:占6个字节(接收方的MAC地址,不清楚时发广播地址:FF-FF-FF-FF-FF-FF) ②.以太网源地址:占6个字节(发送方的MAC地址) ③.帧类型: ...

  4. DotNetCore 部署到IIS 上

    将 DotNetCore MVC 项目成功部署到 IIS 上,记录下配置要点: 1.在 ASP.NET Core 应用中使用 Kestrel Microsoft.AspNetCore.App 元包中包 ...

  5. 通过浏览器F12开发工具快速获取别的网站前端代码的方法

    通过浏览器F12开发工具快速获取别的网站前端代码的方法 说明:直接另存为网页是比较老的做法,会有很多没用的东西下载下来.通过F12开发工具,sources获取到的是比较好的,有目录结构的源文件.

  6. PLS-00357: Table,View Or Sequence reference 'SEQ_TRADE_RECODE.NEXTVAL' not allowed in this context

    oracle数据库: 为了使ID自增,建了序列后,创建触发器: create or replace TRIGGER TRIG_INSERT_TRADE_RECODE BEFORE INSERT ON ...

  7. 对于react-redux的理解

    一.redux与组件 React-Redux提供connect方法,用于从UI组件生成容器组件 二.react-redux的基本使用 1.引入 import {Provider} from " ...

  8. c# 设计模式(一) 工厂模式

    源代码在github上面,需要的自己进行下载:https://github.com/yuzhoukamen/UnikmDesignPattern.git 工厂模式(Factory Pattern)是最 ...

  9. 手推C3算法

    C3算法规则 -- 每一个类的继承顺序都是从基类向子类看 -- 形成一个指向关系的顺序[当前类] + [父类的继承顺序] -- 进行一个提取 -- 如果一个类出现从左到右的第一个顺序上,并且没有出现在 ...

  10. HL-D793G七位蓝色+PT6311驱动

    和之前那块一起买的.又画了这个屏幕驱动,还画了灯丝电源驱动,和以前画的stm8核心板在JLC拼板. 亚光黑颜色,不单独收钱! 切好水洗吹干! 忘记给排针加丝印,手写代之. 焊接的时候,脑子发热,以为把 ...