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. Access operations

    Access operations Accessing elements inside tensors Suppose we have the following tensors: > t = ...

  2. 《Windows核心编程系列》九谈谈同步设备IO与异步设备IO之同步设备IO

    同步设备IO 所谓同步IO是指线程在发起IO请求后会被挂起,IO完成后继续执行. 异步IO是指:线程发起IO请求后并不会挂起而是继续执行.IO完毕后会得到设备的通知.而IO完成端口就是实现这种通知的很 ...

  3. javascript---DOM大编程2

    编程挑战 现在利用之前我们学过的JavaScript知识,实现选项卡切换的效果. 效果图: 文字素材: 房产: 275万购昌平邻铁三居 总价20万买一居    200万内购五环三居 140万安家东三环 ...

  4. 执行linux脚本出现问题

    1. 权限不够: 使用 chmod +x XXX.sh 提升权限 2. 出现:/bin/bash^M: bad interpreter: No such file or directory 原因:文件 ...

  5. Hibernate3中重复引用hbm文件错误信息记录

    Hibernate3中重复引用hbm文件错误信息记录. 八月 ::, ERROR - Context initialization failed org.springframework.beans.f ...

  6. 对char类型数组的英文字母进行冒泡排序

    import java.util.Arrays; import java.util.Scanner; public class Demo02 { public static void main(Str ...

  7. jQuery幸运大转盘_jQuery+PHP抽奖程序

    http://www.thinkphp.cn/code/1153.html 网上转盘抽奖程序大多是flash完成的,而本文使用jQuery和PHP来实现转盘抽奖程序. 若是想看更多js特效.网站源码. ...

  8. visual studio 2015 key vs2015密钥

    Visual Studio Professional 2015简体中文版(专业版)KEY:HMGNV-WCYXV-X7G9W-YCX63-B98R2Visual Studio Enterprise 2 ...

  9. 使用 Java 发送邮件

    在我们的应用程序中有时需要给用户发送邮件,例如激活邮件.通知邮件等等.那么如何使用 Java 来给用户发送邮件呢? 使用 java 代码发送邮件 使用工具类发送邮件 使用Spring进行整合发送邮件 ...

  10. mysql之通过cmd连接远程数据库

    ---恢复内容开始--- 目录 前提 连接远程数据库 前提: 本地安装了mysql数据库 本地和远程网络是连通的,通过命令ping ip (即ping 192.168.0.333),可以ping通 连 ...