要求实现

  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. SQL 基础学习(1):下载DB Browser for SQLite. 下载graphviz(为了使用Rails ERD的前提)出现❌,已debug.

    SQL is a standard language for storing, manipulating and retrieving data in databases. 关系型数据库:RDBMS( ...

  2. 关于list中移除某种数据类型的方法

    众所周知,list在不泛型的情况下是可以存放各种数据类型的,代码如下: public static void main(String[] args) { List list=new ArrayList ...

  3. 虚拟机中安装Linux系统

    本教程的运行环境:Windows 10 , 虚拟机 VirtualBox,Ubuntu 16.04 1.准备 下载 VirtualBox 下载OVA镜像64位 http://releases.ubun ...

  4. mysql学习之check无效的解决及触发器的使用

    SQL的约束种类: 一.非空约束 not null 二.唯一约束 unique 三.主键约束 四.外键约束 五.check约束 该约束可用于列之间检查语义限制的,实际应用过程中非常常用!! 然鹅,My ...

  5. 缓存之Memcache

    Memcache Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. ...

  6. 学习mysql,记录下常用的命令行语句

    MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...

  7. SQL Server 2005 企业版没有 Microsoft SQL Server Management

    我从网上下载的:SQL Server 2005 集成sp2的 企业版安装后没发现 Management Studio管理工具,起初以为是自己安装时没装上,昨天试了全部安装后还是没找到,很是郁闷,在网上 ...

  8. 利用Python进行数据分析(第二版)电子版书籍分享

    资料下载地址: 链接:https://pan.baidu.com/s/1y1C0bJPkSn7Sv6Eq9G5_Ug 提取码:vscu <利用Python进行数据分析(第二版)>高清中文版 ...

  9. Angular7.1.4+Typescript3.1框架学习(二)

    接着第一部分,这篇文章就 Angular cli进行介绍总结: 1. ng g:列出当前命令 ng g 需在angular工程文件夹下执行: C:\Users\zb\angulardemo\heroe ...

  10. win10安装配置nodejs

    下载node 官网下载node 接下来在命令提示符里(win+R)输入node -v和npm -v,如图所示,表示安装完成.   测试,   配置node 在nodejs文件目录下,新建文件夹node ...