python实际练习1——简单购物车
要求实现
- 启动程序后,让用户输入工资,然后打印商品列表
- 允许用户根据商品编号购买商品
- 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
- 可随时退出,退出时,打印已购买商品和余额
自己写的代码是
#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——简单购物车的更多相关文章
- python编程基础之简单购物车
#good文件夹内容[ ['Iphone7', 5800], ['Coffee', 30], ['疙瘩汤', 10], ['Python Book', 99], ['Bike', 199], ['Vi ...
- python实现简单购物车系统(练习)
#!Anaconda/anaconda/python #coding: utf-8 #列表练习,实现简单购物车系统 product_lists = [('iphone',5000), ('comput ...
- Python实例---简单购物车Demo
简单购物车Demo # version: python3.2.5 # author: 'FTL1012' # time: 2017/12/7 09:16 product_list = ( ['Java ...
- 简单购物车程序(Python)
#简单购物车程序:money_all=0tag=Trueshop_car=[]shop_info={'apple':10,'tesla':100000,'mac':3000,'lenovo':3000 ...
- 用Python实现简单购物车
作业二:简单购物车# 实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,# 如果输入为空或其他非法输入则要求用户重新输入 shopping_list = [] w ...
- python 多线程就这么简单(续)
之前讲了多线程的一篇博客,感觉讲的意犹未尽,其实,多线程非常有意思.因为我们在使用电脑的过程中无时无刻都在多进程和多线程.我们可以接着之前的例子继续讲.请先看我的上一篇博客. python 多线程就这 ...
- python模块介绍- HTMLParser 简单的HTML和XHTML解析器
python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...
- 基于Python使用SVM识别简单的字符验证码的完整代码开源分享
关键字:Python,SVM,字符验证码,机器学习,验证码识别 1 概述 基于Python使用SVM识别简单的验证字符串的完整代码开源分享. 因为目前有了更厉害的新技术来解决这类问题了,但是本文作 ...
- Python的变量及简单数据类型
Python的变量及简单类型 1. 变量 在Python编程中,变量是用来存放值或对像的容器.变量的名称可以自定义,但需遵循一定的规范,否则可能会引发一些错误.Python的变量可以分为数字.字符和 ...
随机推荐
- Prim算法、Kruskal算法和最小生成树 | Minimum Spanning Tree
graph to tree非常有趣! 距离的度量会极大地影响后续的分析,欧式距离会放大差异,相关性会缩小差异,导致某些细胞群分不开. 先直观看一下,第一个是Prim,第二个是Kruskal.但是肯定都 ...
- textarea跟随内容自动伸缩高度实现方案
监听input事件,然后将textarea的style.height设置为最低高度(19px),进而获取到元素的scrollHeight,然后将scroolHeight设置为style.height
- 712. Minimum ASCII Delete Sum for Two Strings
题目: Given two strings s1, s2, find the lowest ASCII sum of deleted characters to make two strings eq ...
- 使用vue时,报错“exports is not defined”
在开发中引用插件时,报错“exports is not defined” 但在引用第三方组件的时候,在浏览器中报错“exports is not defined”.根据浏览器报错信息,查询到报错来源是 ...
- spiflash
1.SPI Flash (即SPI Nor Flash)是Nor Flash的一种:2.NOR Flash根据数据传输的位数可以分为并行(Parallel)NOR Flash和串行(SPI)NOR F ...
- spark 2.4 java8 hello world
download JDK 8, extract and add to .bashrc: export JAVA_HOME=/home/bonelee/jdk1.8.0_211export CLASSP ...
- Mac下如何配置环境变量JDK
1.在英文输入法的状态下,按键盘“Ctrl + 空格”组合键,调出Spotlight搜索,在这里可以快速启动终端,输入ter,然后回车,即可打开终端: 2.如果你是第一次配置环境变量,可以使用“tou ...
- Abp 中 模块 加载及类型自动注入 源码学习笔记
注意 互相关联多使用接口注册,所以可以 根据需要替换. 始于 Startup.cs 中的 通过 AddApplication 扩展方法添加 Abp支持 1 services.AddApplicati ...
- PDF 补丁丁 0.6.0.3288 版发布(修复“合并文件”功能的文件夹文件排序问题)
新的测试版修复了合并文件功能中添加名称带有“.”点号的文件夹时无法正常排序文件的问题. 使用合并文件功能的用户建议更新.
- sqlserver数据库 视图相关
1.首先创建一个视图 方法一:右键解决 方法二:脚本 create view view_test AS select * from t1 GO 2.删除视图 方法1:右键解决 方法2:脚本 if ex ...