这次的作业是商城展示,最开始的确是一脸懵逼,后来研究了一下网上的例子,总算是搞出来了一个(其实算是网上列子的简化版?)。

  最开始是想要使用字典去做,发现显示列表的时候怎么也无法实现序号和名称对应,原因是因为字典本身是没有顺序的...之后换成了列表和索引值就顺畅下了许多。

li=[["手机",1000],["手表",2000],["铅笔",10],["橡皮",20]]    #商品列表
cart=[] #购物车列表
print("欢迎来到购物商城!")
qian=int(input("请输入您持有的金额:")) #这里有个问题是输入非数字会报错,其实应该做一个判断,如果输入数字再用int赋值一下,非数字打印提示,这个问题最后才发现,因为懒就省了一下……
xiaofei=0
yue=int(qian-xiaofei)
while True:
print("显示商品列表")
for index,p in enumerate(li): #打印索引和列表
print(index,p[0],p[1])
bianhao=input("请输入商品编号,结算请输入:all,显示购物车请输入:list,显示余额请输入:free:")
if bianhao.isdigit(): #判断输入是否为数字
bianhao=int(bianhao)
bianhaoqian=int(li[bianhao][1])
if yue<0:
print("您的余额不足")
exit(1)
else:
while True:
# nb=int(input("请输入购买数量:"))
nb=int(input("请输入购买数量:"))
if nb>99999:
print("请输入正确的数量")
break
else:
money1=int(nb*bianhaoqian) #算出购买的价格
if money1<yue:
cart.append(li[bianhao][0]) #添加名称到购物车的列表
cart.append(nb) #添加数量到购物车的列表
print("您的商品:%s,数量:%s已经加入购物车"%(li[bianhao][0],nb))
yue=qian-money1
xiaofei +=money1
break
else:
print("余额不足")
break
elif bianhao=="list":
nb=0 #这里把数量作为了列表的索引值
aa=len(cart) #购物车的数量
bb=int(aa/2) #因为购物车里还有数量的一项,所以除去一半就是商品的数量
for x in range(bb):
print(cart[nb],"数量:",cart[nb+1]) #列表第一项和第二项
nb+=2 #因为每一个商品占2项,所以索引值+2
elif bianhao=="free":
if not len(cart):
print("您还没有购物,余额:%s"%(yue))
else:
print("您花费了:%s,余额为:%s"%(xiaofei,yue))
elif bianhao=="all":
if not len(cart):
print("购物车为空!")
break
else:
nb=0 #这里把数量作为了列表的索引值
aa=len(cart) #购物车的数量
bb=int(aa/2) #因为购物车里还有数量的一项,所以除去一半就是商品的数量
for x in range(bb):
print(cart[nb],"数量:",cart[nb+1]) #列表第一项和第二项
nb+=2 #因为每一个商品占2项,所以索引值+2
gm=input("确认是否购买,y or n")
if gm == "N" or gm=="n":
print("购买取消,余额:%s"%(yue))
elif gm =="Y" or gm=="y":
print("一共消费%s,剩余%s"%(xiaofei,yue))
break
else:
print("输入错误")
break
else:
print("输入错误")

初学者的python学习笔记2——作业篇的更多相关文章

  1. 初学者的python学习笔记1——作业篇

    既然是学习,作业必不可少,其实在看后面讲思路之前还是感觉自己写的不错,但是和后面一对比,感觉实在是想的太片面太肤浅了,还需要太多太多改进的地方. 首先放一下作业要求. 最开始做的时候真的是完全按照字面 ...

  2. Python学习笔记之基础篇(-)python介绍与安装

    Python学习笔记之基础篇(-)初识python Python的理念:崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python的历史: 1989年,为了打发圣诞节假期,作者Guido开始写P ...

  3. 初学者的python学习笔记1

    推荐一段时间闲的蛋疼,总觉得再堕落下去不太好,便捡起了之前一直想学而没有学的python,以此记录一下学习笔记,同时亦是督促和复习. 学习51cto上的<2016最新Python开发基础课程-2 ...

  4. 初学者的python学习笔记2

    本来想是先把作业二搞定的,结果发现作业二用的字典,一脸懵逼,还是先搞定第二课吧.其实第二课和第一课内容差不多,据说是第一课的老师去美国了……不管怎么样先整理一下吧. ----------------- ...

  5. Python学习笔记【第一篇】:认识python和基础知识

    我的笔记里的python代码运行环境都是在pycharm软件中运行,所以不去记录如何配置环境变量呀什么的. python种类 Cpython: Python的官方版本,使用C语言实现,使用最为广泛,C ...

  6. Python学习笔记【第九篇】:Python面向对象基础

    Python语言中一切皆对象(类.属性.方法.........) 概念 面向对象编程:Object Oriented Programming 简称OOP 面向对象程序设计 面向对象和面向过程都是解决问 ...

  7. Python学习笔记(Django篇)——3、创建第一个数据库模型

    Django里面集成了SQLite的数据库,对于初期研究来说,可以用这个学习.   第一步,创建数据库就涉及到建表等一系列的工作,在此之前,要先在cmd执行一个命令: python manage.py ...

  8. Python 学习笔记(基础篇)

    背景:今年开始搞 Data science ,学了 python 小半年,但一直没时间整理整理.这篇文章很基础,就是根据廖雪峰的 python 教程 整理了一下基础知识,再加上自己的一些拓展,方便自己 ...

  9. Python学习笔记之基础篇(二)python入门

    一.pycharm 的下载与安装: 使用教程:https://www.cnblogs.com/jin-xin/articles/9811379.html 破解的方法:http://xianchang. ...

随机推荐

  1. Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  2. Android微信智能心跳方案 (转)

    原创 2015-08-17 phoenix WeMobileDev 前言:在13年11月中旬时,因为基础组件组人手紧张,Leo安排我和春哥去广州轮岗支援.刚到广州的时候,Ray让我和春哥对Line和W ...

  3. [地图SkyLine二次开发]框架(2)

    上节讲到,地图加载. 但我们可以发现,当没有页面布局的情况下,<OBJECT>控件,没有占满整个屏幕,这里我们就要用到Extjs的功能了. 这节要讲的是用Extjs为<OBJECT& ...

  4. 慕课网__CSS__line height

  5. main函数的详解

    public : 公共的. 权限是最大,在任何情况下都可以访问. 原因: 为了保证让jvm在任何情况下都可以访问到main方法. static: 静态.静态可以让jvm调用main函数的时候更加的方便 ...

  6. APP敏捷测试,测试和开发并行!

    测试和开发具有同等重要的作用,从一开始,测试和开发就是相向而行的.测试是开发团队的一支独立的.重要的支柱力量. 测试要具备独立性,独立分析业务需求,独立配置测试环境,独立编写测试脚本,独立开发测试工具 ...

  7. 在VIM中进行快速的查找和替换

    VIM是被誉为非常高效的文本编辑软件.但是掌握并高效的使用是件有难度的事情.在VIM中进行快速的查找和替换是提高VIM使用效率的重要方法.下面是我在阅读VIM用户手册时整理的一些资料: 行内搜索. f ...

  8. 将项目上传到git上,并在测试服务器上运行

    上周我完成了我人生的第一个项目,并将它上传到gitHub上完成了团队合作.下面我将用倒叙的方法记录下,我的这段经历. 星期五,项目完成准备上传gitHub启动测试服务器. 1.git clone 项目 ...

  9. Git常用命令速查表

  10. MEF的学习笔记

    为什么要使用MEF 在商业应用软件开发过程中,对于各个软件项目,都需要建立相应的系统框架,为了更好的规范系统的开发,提高生产效率,应该在公司级别制定相应的API标准.这些API标准将站在系统架构层次, ...