#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# name:zzyu
shop_list = [["手机",5000],
["电脑",7000],
["香蕉",50],
["衣服",200],
["车",10000]]
shop_list_2 = []
salary = input("请输入您的工资:")
if salary.isdigit():
salary = int(salary)
info = '''<<<您的工资是:\033[31;1m{_salary}\033[0m,请选择您需要的商品编号>>>'''.format(_salary=salary)
print(info)
while True:
for index,itme in enumerate(shop_list):
print (index,itme)
user_choice = input("请选择您要购买的商品编号:")
if user_choice.isdigit():
user_choice = int(user_choice)
if user_choice < len(shop_list) and user_choice >= 0:
shop_list_2.append(shop_list[user_choice])
user_choice_2 = shop_list[user_choice]
if user_choice_2[1] <= salary:
print("已为您添加到购物车:", shop_list_2)
salary -= shop_list[user_choice][1]
print("您的余额为:\033[31;1m{}\033[0m".format(salary))
else:
print ("您的剩余余额为:\033[31;1m{_salary}\033[0m,请及时充值 !!!".format(_salary=salary))
break
else:
print("没有此商品。。。")
elif user_choice == "q":
print("您已加入购物车的商品有:")
for p in shop_list_2:
print(p)
exit()
else:
print("您输入有误,请重新输入。。。。。")
else:
print("<<<<<<您输入有误,请重新输入>>>>>>>") 第二次尝试
shop_list = [("苹果",50),
("自行车",200),
("手机",3000),
("电脑",5000),
("摩托车",8000),
("汽车",10000)]
shop_list_2 = []
salary = input("请输入您的工资:")
if salary.isdigit():
salary = int(salary)
print("您的工资是:\033[31;1m{_user_salary}\033[0m".format(_user_salary=salary))
while True:
for index, item in enumerate(shop_list):
print(index, item)
user_num_input = input("请输入商品编号:")
if user_num_input.isdigit():
user_num_input = int(user_num_input)
if user_num_input < len(shop_list) and user_num_input >= 0:
if shop_list[user_num_input][1] <= salary:
salary -= shop_list[user_num_input][1]
shop_list_2.append(shop_list[user_num_input])
info = '''您已加入购物车的商品:{_suer_choice_shop}
您的余额为:\033[31;1m{_user_salary_1}\033[0m'''.format(_suer_choice_shop=shop_list_2,_user_salary_1=salary)
print(info)
else:
print("您的余额不够添加此商品,请及时充值,目前您的余额剩余:\033[31;1m%s\033[0m" %(salary))
user_pay_choice = input("是否对已加入购物车的商品进行购买?<y or n>:")
if user_pay_choice == "y":
print("恭喜您以下商品购买成功:%s"%(shop_list_2))
print("剩余金额为:\033[31;1m%s\033[0m"%(salary))
break
elif user_pay_choice == "n":
print("欢迎下次光临,再见")
break
else:
print("您的输入有误,再见")
break
else:
print("您输入有误,请重新输入!!!")
elif user_num_input == "q":
info_2 = '''您已选择的商品有:%s''' % (shop_list_2)
print(info_2)
exit()
else:
print("输入错误,请重新选择~~~~~")

list[列表]的使用的更多相关文章

  1. ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单

    前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...

  2. ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑

    前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 # ...

  3. ASP.NET Aries 入门开发教程3:开发一个列表页面及操控查询区

    前言: Aries框架毕竟是开发框架,所以重点还是要写代码的,这样开发人员才不会失业,哈. 步骤1:新建html 建一个Html,主要有三步: 1:引入Aries.Loader.js 2:弄一个tab ...

  4. ASP.NET Aries 入门开发教程2:配置出一个简单的列表页面

    前言: 朋友们都期待我稳定地工作,但创业公司若要躺下,也非意念可控. 若人生注定了风雨飘摇,那就雨中前行了. 最机开始看聊新的工作机会,欢迎推荐,创业公司也可! 同时,趁着自由时间,抓紧把这系列教程给 ...

  5. 散列表(hash table)——算法导论(13)

    1. 引言 许多应用都需要动态集合结构,它至少需要支持Insert,search和delete字典操作.散列表(hash table)是实现字典操作的一种有效的数据结构. 2. 直接寻址表 在介绍散列 ...

  6. Python列表去重

    标题有语病,其实是这样的: 假设有两个列表 : L1 = [1,2,3,4] ; L2 = [1,2,5,6] 然后去掉L1中包含的L2的元素 直接这样当然是不行的: def removeExists ...

  7. WPF 微信 MVVM 【续】修复部分用户无法获取列表

    看过我WPF 微信 MVVM这篇文章的朋友,应该知道我里面提到了我有一个小号是无法获取列表的,始终也没找到原因. 前两天经过GitHub上h4dex大神的指导,知道了原因,是因为微信在登录以后,web ...

  8. Emoji选项列表

    一.需要的前提文件 从网上下载Emoji的表情包,当然是png的图片,因为WPF不支持彩色的Emoji,所以,做列表的时候,需要用图片. 随着压缩包一起的还有一个Emoji.xml文件,文件的层级结构 ...

  9. UWP开发必备:常用数据列表控件汇总比较

    今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...

  10. 在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能

    在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验 ...

随机推荐

  1. WTM 3.5发布,VUE来了!

    千呼万唤中,WTM的Vue前后端分离版本终于和大家见面了,我曾经跟群里1000多位用户保证过Vue版本会在春天到来,吹过的牛逼总算是圆上了. WTM一如既往地追求最大程度提高生产效率,所以内置的代码生 ...

  2. javaWeb_Css

    CSS HTML页面实在太丑了,怎么破?! 第1章 CSS简介 CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML元素(或内容)在浏览器内的显示样式 ...

  3. Postman从入门到入门

    1.Postman简介 Postman是一个接口测试工具,在做接口测试的时候, Postman相当于一个客户端,可以发送请求到服务器端.Postman分为Chrome插件版本(不再更新维护)和Nati ...

  4. 单片机的 HexToStr HexToBcd BcdToStr 几个转换函数

    今天写单片机一个程序 要检查一些数据,想发到串口调试的软件上在电脑上查看 有些转换函数 想网上找一个 看看都是很多的垃圾文章 很多的程序都不能用,那些发文章的人也不用心 所以我还是自己动手写一下吧 写 ...

  5. Partition Array into Disjoint Intervals

    2020-02-10 22:16:50 问题描述: 问题求解: 解法一:MultiSet O(nlog) 看了下数据规模,第一个想到的是multiset,肯定可以ac的,就直接敲了出来. public ...

  6. 图论-BFS-最小高度的树 Minimum Height Trees

    2018-09-24 12:01:38 问题描述: 对于一个具有树特征的无向图,我们可选择任何一个节点作为根.图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树.给出这样的一个图,写 ...

  7. Nginx做负载均衡的几种轮询策略

    集群环境为了解决单点无法支撑高并发的情况,集群采用多台服务器提供服务,一般在集群中使用nginx 将来自客户端的请求转发给服务器端 nginx负载均衡可用提高网站的吞吐量,缓解单台服务器的压力. 一. ...

  8. Building Applications with Force.com and VisualForce (DEV401) (二五):Visualforce Controller

    Dev401-026:Visualforce Pages: Visualforce Controller   Module Objectives1.Identify the functionality ...

  9. UVA - 11426 欧拉函数(欧拉函数表)

    题意: 给一个数 N ,求 N 范围内所有任意两个数的最大公约数的和. 思路: f 数组存的是第 n 项的 1~n-1 与 n 的gcd的和,sum数组存的是 f 数组的前缀和. sum[n]=f[1 ...

  10. coding++:快速构建 kindeditor 富文本编辑器(一)

    此案例 demo 为 SpringBoot 开发 1.官网下载相关资源包:http://kindeditor.net/down.php 2.编写页面(引入相关JS) <!DOCTYPE html ...