要求实现

  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. 【转】EDID的简介和解析

    转自:https://www.cnblogs.com/beyond-rxl/p/9266997.html 一.EDID简介 EDID: Extended Display Identification ...

  2. Hadoop InputFormat 输入文件分片

    1. Mapper 与 Reducer 数量 对于一个默认的MapReduce Job 来说,map任务的数量等于输入文件被划分成的分块数,这个取决于输入文件的大小以及文件块的大小(如果此文件在 HD ...

  3. 小程序md5加密

    function md5(string) { var x = Array(); var k, AA, BB, CC, DD, a, b, c, d; , S12 = , S13 = , S14 = ; ...

  4. docker 中安装 rabbitMQ

    安装rabbitMQ的命令 docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RAB ...

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

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

  6. AngularJs在ng-click函数中获取代表当前元素的DOM对象

    html代码 <div ng-click="test($event)">111</div> Controllers.js $scope.test= func ...

  7. maven打jar包 没有主属性清单

    使用mvn clean package命令打包,java -jar 命令运行时,提示:“jar 包没有主属性清单”.修改pom文件后解决: <build> <plugins> ...

  8. uva 10288 gailv

    Problem F Coupons Input: standard input Output: standard output Time Limit: seconds Memory Limit: MB ...

  9. There are multiple modules with names that only differ in casing. 黄色warning

    There are multiple modules with names that only differ in casing.有多个模块同名仅大小写不同This can lead to unexp ...

  10. sql习题及答案

    sql习题:http://www.cnblogs.com/wupeiqi/articles/5729934.html 习题答案参考:https://www.cnblogs.com/wupeiqi/ar ...