要求实现

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

自己写的代码是

#Author:Wildwolf
#-*- coding:utf-8 -*- #可以用index确定下标
#本例中是静态的,用list固定了产品种类,没有想到用下标的形式选择商品
#自己增加了可选择购买物品数量的功能 import sys alterlist = ['欢迎光临', [1, 'MG元祖高达', 150], [2,'MG独角兽一号机', 230], [3, 'MG报丧女妖', 220], [4, 'MG沙扎比', 430],
[5, 'MG精神力感知扎古', 420], [6, 'MG红异端', 255]]
shoplist = []
list = ['', '', '', '', '', '']
salary = input("请输入您的工资:")
while True:
salarylast = salary
for i in alterlist:
print(i)
print('如果您想退出,请输入"q"或按任意键继续')
getpass = input()
while getpass == 'q':
print("您所购商品为:-----shopping list-----")
for i in shoplist:
print(i)
print("您的余额为:\033[31;1m%s\033[0m" % salarylast)
print("谢谢惠顾!")
sys.exit(0)
else:
print("请按提示输入:")
getpass2 = input("请输入您要购买的商品编号:")
if getpass2 not in list:
print("输入错误,请重新输入")
continue
else:
select = int(getpass2)
if select > 6:
print("没有对应的商品,请重新输入:")
else:
if int(salary) > int(alterlist[select][2]):
number = input("请输入您要购买的数量:")
if number not in list:
print("输入错误,请重新输入")
else:
salary = (int(salary) - int(alterlist[select][2])*int(number))
shoplist.append([alterlist[select], number])
print("商品已放入购物车,您的余额为\033[31;1m%s\033[0m" % salary)
else:
print("您的余额不足")

从视频里学到的高级一点的代码为

#-*- coding:utf-8 -*-

print("欢迎光临!")
alter_list = [('MG元祖高达', 150),
('MG独角兽一号机', 230),
('MG报丧女妖', 220),
('MG沙扎比', 430),
('MG精神力感知扎古', 420),
('MG红异端', 255)]
shoplist = [] salary = input("输入你的工资:")
if salary.isdigit(): #判断是否字符串是否由数字构成
salary = int(salary) #转换成整数类型
while True:
for index, item in enumerate(alter_list): #print(product_list.index(item),item)
print(index, item)
user_choice = input("请输入您要购买的商品编号:")
if user_choice.isdigit():
user_choice = int(user_choice)
if user_choice < len(alter_list) and user_choice >=0: #列表的长度
p_item = alter_list[user_choice]
if p_item[1] <= salary:
alter_list.append(p_item)
salary -= p_item[1]
print("将 %s 添加至您的购物车,您的余额为 \033[31;1m%s\033[0m" % (p_item, salary))
else:
print("\033[41;1m你的余额为[%s]\033[0m" % salary) #输出余额
else:
print("商品编号 [%s] 不存在!" % user_choice)
elif user_choice == 'q':
print("--------shopping list------")
for p in alter_list:
print(p)
print("您的余额为:", salary)
print("谢谢惠顾!")
exit()
else:
print("输入错误")

还能有更高级的功能,随着学习深入添加

python实际练习1——简单购物车的更多相关文章

  1. python编程基础之简单购物车

    #good文件夹内容[ ['Iphone7', 5800], ['Coffee', 30], ['疙瘩汤', 10], ['Python Book', 99], ['Bike', 199], ['Vi ...

  2. python实现简单购物车系统(练习)

    #!Anaconda/anaconda/python #coding: utf-8 #列表练习,实现简单购物车系统 product_lists = [('iphone',5000), ('comput ...

  3. Python实例---简单购物车Demo

    简单购物车Demo # version: python3.2.5 # author: 'FTL1012' # time: 2017/12/7 09:16 product_list = ( ['Java ...

  4. 简单购物车程序(Python)

    #简单购物车程序:money_all=0tag=Trueshop_car=[]shop_info={'apple':10,'tesla':100000,'mac':3000,'lenovo':3000 ...

  5. 用Python实现简单购物车

    作业二:简单购物车# 实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,# 如果输入为空或其他非法输入则要求用户重新输入 shopping_list = [] w ...

  6. python 多线程就这么简单(续)

    之前讲了多线程的一篇博客,感觉讲的意犹未尽,其实,多线程非常有意思.因为我们在使用电脑的过程中无时无刻都在多进程和多线程.我们可以接着之前的例子继续讲.请先看我的上一篇博客. python 多线程就这 ...

  7. python模块介绍- HTMLParser 简单的HTML和XHTML解析器

    python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...

  8. 基于Python使用SVM识别简单的字符验证码的完整代码开源分享

    关键字:Python,SVM,字符验证码,机器学习,验证码识别 1   概述 基于Python使用SVM识别简单的验证字符串的完整代码开源分享. 因为目前有了更厉害的新技术来解决这类问题了,但是本文作 ...

  9. Python的变量及简单数据类型

    Python的变量及简单类型 1.  变量 在Python编程中,变量是用来存放值或对像的容器.变量的名称可以自定义,但需遵循一定的规范,否则可能会引发一些错误.Python的变量可以分为数字.字符和 ...

随机推荐

  1. 20190321xlVBA_明细信息表汇总成数据表

    刚开始能把代码敲得行云流水的时候,写代码是种乐趣.有了功利目的之后,重复的工作写多几次,厌烦的情绪四处弥漫. 去年八月份正好写了一回,还能支持控件,在此备忘. Public Sub Informati ...

  2. SpringBoot之配置文件加载位置

    1.SpringBoot启动会扫描application.properties或者application.yml文件作为springboot的配置文件.默认创建项目生成application.prop ...

  3. 基于Docker的Mysql主从复制搭建

    来源:https://www.cnblogs.com/songwenjie/p/9371422.html?tdsourcetag=s_pctim_aiomsg   为什么基于Docker搭建? 资源有 ...

  4. python下基于sokcet的tcp通信——入门篇

    环境 python版本:2.7 IDE:pycharm TCP/UDP协议均为传输层的协议,绝大部分应用程序之间的通信都是使用TCP或UDP,故而在网络通信中及其重要,想详细了解他们之间的差异,可参考 ...

  5. robot_framework环境搭建

    1.python安装(必须是python2) 下载地址:https://www.python.org/ 2.setuptools安装 下载地址:https://pypi.python.org/pypi ...

  6. css修改原生radio样式

    日常工作中经常会用到单选框radio,而原生样式不好看无法满足项目要求,模拟写一个又比较麻烦,所以写了一个改变原生样式的demo. 原生样式: 改变后的样式: 以下为demo代码: <!DOCT ...

  7. vsftpd详细配置

    vsftpd配置文件详解 1.默认配置: 1>允许匿名用户和本地用户登陆. anonymous_enable=YES local_enable=YES 2>匿名用户使用的登陆名为ftp或a ...

  8. Mxnet编译安装

    在安装之前请你们自行安装好cuda和cudnn,记得修改环境变量并且source一下,下面讲一下mxnet的安装 严格按照我的所有的指令 sudo apt-get update sudo apt-ge ...

  9. springboot秒杀课程学习整理1-2

    1)从数据库到前端,做了三层转换,最后统一返回给前端的格式 DO-> model: 放在service中,目的是为了组装来自于数据库的数据,有些字段来自于不同的表的取,这一层相当于真正的业务模型 ...

  10. rebar3自动编译

    功能:修改完代码可以自动编译加载到VM中 必须安装的软件: Linux: inotify  链接https://github.com/rvoicilas/inotify-tools/wiki 配置: ...