#!/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. Python3 分数

    limit_denominator()定义:通过限制分母的大小来取一个近似值提高精度.格式:fractionobject.limit_denominator('分母最大值') denominator定 ...

  2. [BJDCTF 2nd]fake google

    [BJDCTF 2nd]fake google 进入页面: 试了几下发现输入xxx,一般会按的格式显示, P3's girlfirend is : xxxxx 然后猜测会不会执行代码,发现可以执行 & ...

  3. vunlhub-DC-1-LinuxSuid提权

    将靶场搭建起来 桥接看不到IP 于是用masscan 进行C段扫描 试试80 8080 访问之后发现是个drupal 掏出msf搜索一波 使用最近年限的exp尝试 exploit/unix/webap ...

  4. 渗透测试-http协议简介

    HTTP协议 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都 必须遵守这个标准.设计HTTP最初的目的是为了 ...

  5. 一夜搞懂 | JVM GC&内存分配

    前言 本文已经收录到我的Github个人博客,欢迎大佬们光临寒舍: 我的GIthub博客 学习导图 一.为什么要学习GC&内存分配? 时代发展到现在,如今的内存动态分配与内存回收技术已经相当成 ...

  6. 手把手教你学Git

    Git 使用手册独家实战 0.查看本机公钥 步骤: 1.进入.ssh目录 cd ~/.ssh 2.找到id_rsa.pub文件 ls / ll 3.查看文件 cat id_rsa.pub JackFe ...

  7. css清除浮动影响

    将清除浮动代码添加到重置样式表中,随时可以调用 }}.clearfix:after{clear:both} 给需要清除浮动影响的元素添加class名 --- clearfix 例: <!-- c ...

  8. OpenCV-Python 如何使用背景分离方法 | 四十六

    目标 背景分离(BS)是一种通过使用静态相机来生成前景掩码(即包含属于场景中的移动对象像素的二进制图像)的常用技术. 顾名思义,BS计算前景掩码,在当前帧与背景模型之间执行减法运算,其中包含场景的静态 ...

  9. 十个python图像处理工具

    介绍 如今的世界存在了大量的数据,图像数据是重要的组成部分.如果要利用这些图片,需要对图像进行处理,提高图片质量或提取图片内容信息. 图像处理的常见操作包括图像显示,基本操作如裁剪,翻转,旋转等,图像 ...

  10. macOS 去掉系统软件更新红点提示

    当前系统提示更新到macOS Catalina .打开终端执行以下命令: 第一步运行: sudo softwareupdate --ignore "macOS Catalina" ...