Python之购物车

 msg_list = [
['iphone',8888],
['coffe',38],
['book',90],
['Tesla',100000],
['RR',1000000000]
] shopping_cart = [] salary = int(input('input your salary:')) while True:
#计数器,给列表的物品赋值
index = 0
# 循环列表msg_list,并打印
for product in msg_list:
print(index,product)
index +=1
#输入要选取的物品编号
choice = input('>>:').strip()
#对输入的类型进程判断,看是否是数字,isdigit是判断是否是数字的方法
if choice.isdigit():
#判断输入的数字是否在列表的索引值范围内
choice = int(choice)
if choice >= 0 and choice <= len(msg_list):
#商品存在,取到商品。
product = msg_list[choice]
#判断输入的金额是否买得起。
if product[1] <= salary:
#买得起,并加入购物车。
shopping_cart.append(product)
#总金额减去加入购物车的钱
salary -= product[1]
# \033[31;1m XXXXXXXX \033[0m 固定写法,可以改变XXXXXX的字体颜色
print('Added product:' + product[0] + ' into shopping cart, \033[31;1myour current\033[0m balance:' + str(salary))
else:
print('买不起了,产品价格是' + str(product[1]) + "还差" + str(product[1]-salary) + '钱')
else:
print('商品不存在')
elif choice == 'q':
print('-------已购买商品-------') for i in shopping_cart:
print(i) print('您的余额为:',salary)
print('---------结束----------')
break
else:
print('无此选项')

购物车优化:

 msg_list = [['IphoneX',8888],
['Coffee',30],
['MINI',300000],
['Python',998],
['LAND ROVER',4000000],
['RR',10000000],
] shopping_cart = {} salary = int(input("input your salary:")) while True:
index = 0
for product in msg_list:
print(index,product)
index +=1
choice = input(">>:").strip()
if choice.isdigit(): #判断是否为数字
choice = int(choice)
if choice >= 0 and choice < len(msg_list):#商品存在
product = msg_list[choice] #取到商品
if product[1] <= salary: #判断能否买的起
#买的起
if product[0] in shopping_cart: #之前购买过呀
#字典的取值方法
shopping_cart[product[0]][1] += 1 #[price, 数量],只需要把数量+1,加入购物车
else:
shopping_cart[product[0]] = [product[1], 1] #创建一条商品购买记录 salary -= product[1] #扣钱
print("Added product " + product[0] + " into shopping cart,\033[42;1myour current\033[0m balance " + str(salary) )
else:
print("买不起,穷逼! 产品价格是" + str(product[1]) + " 你还差" + str(product[1]-salary) + "钱")
else:
print("商品不存在!")
elif choice == "q":
print("-------已购买商品列表--------")
#print(shopping_cart)
id_counter = 1
#初始化一个总花费的变量
total_cost = 0
print("id 商品 数量 单价 总价")
for key in shopping_cart:
#字符串格式化,10是每个占位符的距离
print("%10s%10s%10s%10s%10s" %(id_counter,
key,
shopping_cart[key][1],
shopping_cart[key][0],
shopping_cart[key][1]*shopping_cart[key][0])) id_counter +=1
total_cost += shopping_cart[key][1]*shopping_cart[key][0] #单个商品总价 print("您的总花费为:",total_cost)
print("您的余额为:",salary)
print("----------end----------")
break
else:
print("无此选项!")

Python之购物车的更多相关文章

  1. Python初探-购物车程序

    要求: 1,用户进入后,有欢迎语并提示用户输入本金 2.用户输入正确的内容后有购物菜单显示给用户 3.当用户的本金不足以购买商品的时候有提示余额不足并告知差额 4.成功购物后提示已购买内容和购买后的余 ...

  2. python之购物车的编写(熬夜撸代码中。。。)

    购物车的编写对于我这种不是很精通函数的小白来说,简直太难了.各种坑,各种无奈啊!不过总算也是写出来了! 不多说,直接上代码! #!/usr/bin/env python#用户名 sanjiang#密码 ...

  3. Python练习----购物车

    要求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时 ...

  4. python实现购物车

    一. 功能: 1. 用户充值余额 判断余额输入格式是否正确,正确则转换成float型. 2. 显示商品列表 根据已有商品显示所有商品的序号.商品名称.和价格供用户选择 3. 用户选择商品 判断用户输入 ...

  5. python复习购物车程序

    个人学习总结: 无他,唯手熟尔!多敲多练才是王道 python 第三课 元组的灵活运用&字符串的诸多操作 Program01 '''时间 2018年2月12日12:15:28目的 购物车程序 ...

  6. 【python】——购物车

    作业需求: 用户名和密码存放于文件中,格式为:egon|egon123 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序 允许用户根据商品编号购买商品 ...

  7. Python学习-购物车程序

    程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...

  8. python设计购物车

    设计购物车 一需求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提 ...

  9. python编写购物车新写法

    用另一种方式完成购物车的功能实现 #!/usr/bin/python zijin = input("请输入资金:") if zijin.isdigit(): zijin = int ...

随机推荐

  1. (DP ST表 线段树)51NOD 1174 区间中最大的数

    给出一个有N个数的序列,编号0 - N - 1.进行Q次查询,查询编号i至j的所有数中,最大的数是多少.   例如: 1 7 6 3 1.i = 1, j = 3,对应的数为7 6 3,最大的数为7. ...

  2. 数据结构 - 动态单链表的实行(C语言)

    动态单链表的实现 1 单链表存储结构代码描述 若链表没有头结点,则头指针是指向第一个结点的指针. 若链表有头结点,则头指针是指向头结点的指针. 空链表的示意图: 带有头结点的单链表: 不带头结点的单链 ...

  3. treap板子(洛谷 P3369 【模板】普通平衡树(Treap/SBT))

    由于有相同的数,每个节点加一个权值表示此数出现的次数 #include<cstdio> #include<cstdlib> #include<ctime> #inc ...

  4. sed简单脚本练习

    sed脚本的执行顺序可以简记为:Read,Execute,Print,Repeat(读取,执行,打印,重复)简称REPR 分析脚本的执行顺序: l 读取一行到模式空间(sed内部的一个临时缓存,用于存 ...

  5. solr 6.0 没有schema.xml未自动创建schema文件

    solr 6.0 没有schema.xml未自动创建schema文件 摘要:在之前的Solr版本中(Solr5之前),在创建core的时候,Solr会自动创建好schema.xml,但是在之后的版本中 ...

  6. AJPFX:如何保证对象唯一性呢?

    思想: 1,不让其他程序创建该类对象. 2,在本类中创建一个本类对象. 3,对外提供方法,让其他程序获取这个对象. 步骤: 1,因为创建对象都需要构造函数初始化,只要将本类中的构造函数私有化,其他程序 ...

  7. 微信小程序flex布局

    一.flex布局基础 二.相对定位和绝对定位   flex的容器和元素   主轴(左-右),交叉轴(上-下)     flex容器属性详解 flex-direction 决定元素的排列方向(默认row ...

  8. 用idea+maven编译打包spark project core错误:java.lang.RuntimeException: Unable to load a Suite class

    Discovery starting. *** RUN ABORTED *** java.lang.RuntimeException: Unable to load a Suite class tha ...

  9. linux下安装mysql5.7.21

    下载 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz 解压 ...

  10. vscode显示php函数列表

    1.安装插件支持 https://marketplace.visualstudio.com/items?itemName=linyang95.php-symbols 2.ctrt+shift+o 即可 ...