#!/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. 欲善事先利器-IEAD插件篇

    工欲善其事,必先利其器,好鞋踢好球是非常合乎逻辑的事情. --<长江七号> 同样的开场白,不一样的酒,不一样的故事. 上篇<欲善事先利器--系统篇>已经推荐了一些个人常用的效率 ...

  2. FFmpeg SDK for iOS

    FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的跨平台开源计算机程序. 很多平台视频播放器都是使用FFmpeg来开发的,FFmpeg官方并没有为各个平台提供编译好的SDK,所以使 ...

  3. drf 简介以及部分源码分析

    目录 复习 drf框架 全称:django-rest framework 知识点 接口 restful接口规范 基于restful规范的原生Django接口 主路由:url.py api组件的子路由: ...

  4. IdentityServer4源码解析_4_令牌发放接口

    目录 identityserver4源码解析_1_项目结构 identityserver4源码解析_2_元数据接口 identityserver4源码解析_3_认证接口 identityserver4 ...

  5. CentOS7 如何安装JDK(以及卸载)

    CentOS7 如何安装JDK(以及卸载) 1. 如何安装JDK? 购买云服务器后,会提供一个公网IP和内网IP,需要使用SSH工具连接到云服务器(推荐使用SecureCRT),随后就能在命令行中操作 ...

  6. [树的度数] Christmas Spruce

    Consider a rooted tree. A rooted tree has one special vertex called the root. All edges are directed ...

  7. 一书吃透机器学习!新版《机器学习基础》来了,教材PDF、PPT可下载 | 资源

    不出家门,也能学习到国外高校的研究生机器学习课程了. 今天,一本名为Foundations of Machine Learning(<机器学习基础>)的课在Reddit上热度飙升至300, ...

  8. Typora+markdown 最常用语法教程

    Typora+markdown 最常用语法教程(by 程序员宝藏) Typora+markdown 最常用语法教程(by 程序员宝藏) 请先配置推荐配置(文件->偏好设置): 文章目录 Typo ...

  9. n次方

    1.问题描述 计算 an 2.算法分析 先将 n 变一变,寻找新的计算路径.预处理就是变治法的根本. 如果单纯循环执行 n 次相乘,那么时间复杂度为 O(n).可以利用二进制幂大大改进效率. 主要思路 ...

  10. python函数的传参模式

    python里的变量更像是一个名字.标签.而Python中一切又皆为对象. 当函数传参时,函数参数作为一个标签,指向某个对象,因此更贴切的说是"call by object". 但 ...