老男孩python作业_老男孩python学习之作业一购物小程序
想学编程由来已久
始终没有个结果,痛心不已
如今再次捡起来,望不负期望,不负岁月
......一万字的废话......
先介绍一下我的自学课程吧
“路飞学城”的《python开发21天必备》
屌丝一个嘛,所以找了免费的课程
课程虽然免费,做的出奇好,佩服,尤其是课间鸡汤,屌的一笔
特别期望可以报个付费的玩玩,那一定乐趣无穷啊
决定学习python,也是因为它和人工智能沾上了,而且入门简单
所以,不要怕
就这,感觉很简单嘛,呵呵大
要用到列表的创建,循环,打印列表索引和,为列表添加指定元素
Input()函数的使用,与用户的交互,判断输入的内容是数字,字符串或者其他
变量的赋值和计算
操作符的使用,也可以使用格式化操作符
循环条件语句,while ,if,for,break结束语句
是不是很简单?
做一下吧!?要不再加一个需求,那样才有趣
l 用户可以选择将购物车里的商品按照已购买列表编码删除任意一个商品
l 用户可以一直删除,用户不想删除了,可以选择继续购物,退出时,打印购物车商
品列表
赖皮,这分明是两个要求吗?
就这样,我从晚上八点玩到凌晨两点,没搞定,呵呵哒,然后十点起床,十一点半,搞定!
一共用了差不多半天,可能是中间睡了一觉,灵感就来了,大脑真神奇,你要给他时
间,他会给你答案,这中间就是不断地尝试,错误,寻找错误,在尝试,错误,不断地寻
找,不断地修改。我想说的就是,在你到达成功的路上不要放弃,相信你自己,可以做到的。
变量的修改,删除指定元素
多层循环嵌套(困难在这,难为死小白了,但是灵感来了,就觉得很简单,特别好写)
下面,来看看这个困难到底是什么吧?建议:如果你还没有练习过,在读完这句话之后,先去
尝试自己解决,在十个小时后还不能解决。在来看下面的方案,这样对你才是最大的帮助!
>>确
>>定
>>要
>>看
>>了
>>吗
>>?
>>que
>>ding
>>yao
>>kan
>>le
>>ma
>>?
>>确
>>定
>>要
>>看
>>了
>>吗
>>?
>>que
>>ding
>>yao
>>kan
>>le
>>ma
>>?
>>确
>>定
>>要
>>看
>>了
>>吗
>>?
>>que
>>ding
>>yao
>>kan
>>le
>>ma
>>?
>>are
>>you
>>sure
>>?
>>
>>
>>
最终解决方案:每一层while 循环设立一个flag,在需要结束的同层循环下去设定flag的反值
看了,是不是很简单,能想出来,能实现还是很快乐的。不知道有没有更好的方法,肯定有,但是实力有限了。
1.交互,输入工资(有输入)1.1.工资输入正确2.查看商品列表2.1.交互,选择商品列表编号(有输入)3.添加商品到购物车3.1.不要了,退出购物(输入Q退出)4.交互,选择结账退出/删除商品(有输入)5.结账退出(输入s退出)5.1删除商品(输入d)6.交互,选择删除购物车商品(有输入)7.1.删除选中的商品7.2.不删了,退出(输入Q)8.交互,选择是结账还是继续购买商品(有输入)9.进入选择商品循环2.1
9.1.结账退出(输入s退出)6.1.购物车空了,请先购买7.进入选择商品循环2.1
6.2.输入错误,请重新输入4.1输入错误2.2.商品价格大于工资,重新输入2.3.输入编码不对,如:不在列表中1.2.工资输入错误,如:不是数字
下面分享出来,我在错误中的学习。有些特别幼稚,有些是新知识,希望可以帮助到你
在错误中学习:
好多次错将 == 当做=使用,浪费了很多时间;
标志位只有两种形态,Ture 和Flase。错误的将标志位flag=1.这样其实等同于flag=Ture,Flase和Ture是bool类型,而数字1是int类型,浪费了很多时间
不知道为什么没有按照自己的想法运行,最好能够把相关代码Debug一下,不要觉得很麻烦,其实这样比你自己一遍遍运行,看代码方便的多,可以省下很多眼力,体力和时间
shift+Tab 取消缩进(百度到的)
循环应该是一个可以完成的闭环,刚开始创建了4个并列的循环,想当然的以为可以通过jump(跳跃)解决问题,然而并不能。
写累了,上代码
100都累的不行,很多重复的代码,如果可以用定义函数,整个代码就会简介很多,写好了,再发上来吧
goods_list = [['中性笔',5],['小米手机',1799],['NIKE鞋',488],['衬衫',277],['表',277],['包',399],['电脑',7999]]
choices_list= [] #定义购物车
flag_m =True
flag=True
flag_2=True
flag_3=True
flag_4=Truewhile flag_m ==True:
your_money= input("请输入你的工资>>")ifyour_money.isdigit():
your_money=int(your_money)while flag ==True:
flag_2= True #重新确定标志位,开始购物循环
flag_3 =True
flag_4=Trueprint('------商品列表------') #打印商品列表
for index, i inenumerate(goods_list):print(index, i[0], '', i[1])print('------- END -------')
choice= input('请输入您要购买的商品编号(退出输入q)>>')if choice.isdigit(): #判断用户输入是不是数字
if 0 <= int(choice) < len(goods_list): #判断是数字,并且数字在列表范围内
if your_money >= goods_list[int(choice)][1]: #判断用户工资的钱够不够买选择的商品
choices_list.append(goods_list[int(choice)]) #加入购物车
your_money =your_money- goods_list[int(choice)][1] #扣款
print('您的余额:',your_money) #显示余额
print('------购物车------')for index,i inenumerate(choices_list):print(index, i[0], '', i[1])else: #钱不够,提示重新选择
print('您的余额不足,请重新选择!')else: #数字不对,提示重新输入
print('您输入的编号不在列表中,请重新输入。')elif choice == 'q': #退出购物循环
if len(choices_list) >0:print('您的余额:',your_money)print('------购物车------')for index, i inenumerate(choices_list):print(index, i[0], '', i[1])print('-------- END --------')while flag_2 == True: #进入结账或者删除商品循环
s = input('结账(s)/去掉几个(d)')if s == 's':print('感谢惠顾,欢迎下次再来!')
flag= False #终止所有循环
flag_2 =False
flag_3=False
flag_4=False
flag_m=Falseelif s == 'd': #进入删除商品循环
while flag_3 ==True:if len(choices_list) >0:print('您的余额:', your_money) #显示余额
print('------购物车------')for index, i inenumerate(choices_list):print(index, i[0], '', i[1])
del_choice= input('请输入您不想要的商品的编号(输入q退出)>>')ifdel_choice.isdigit():
del_choice=int(del_choice)if 0 <= del_choice
your_money= your_money + choices_list[del_choice][1]delchoices_list[del_choice]else:print('您输入的编号不在列表中,请重新输入。')elif del_choice == 'q': #退出删除商品循环
if len(choices_list) >0:print('您的余额:', your_money)print('------购物车------')for index, i inenumerate(choices_list):print(index, i[0], '', i[1])print('-------- END --------')while flag_4 == True: #进入结账或者继续购买循环
s_0 = input('结账(s)/继续购买(b)')if s_0 == 's':print('感谢惠顾,欢迎下次再来!')
flag= False #终止所有循环
flag_2 =False
flag_3=False
flag_4=False
flag_m=Falseelif s_0 == 'b': #终止内循环,开始第一层购买循环
flag =True
flag_2=False
flag_3=False
flag_4=False#break
else:print('输入错误!')else:print('请输入正确的商品列表编号')else:print('您的购物车已经空了,请添加商品!')
flag_2=False
flag_3=Falsebreak
else:print('输入错误')else:print('您没有购物')print('您的余额:', your_money)
flag_m=False
flag=Falseelse: #其他输入提示
print('请输入正确的商品列表编号')else:print("输入错误!")
老男孩python作业_老男孩python学习之作业一购物小程序相关推荐
- 【附源码】计算机毕业设计Python安卓少儿英语在线学习平台APPodto4(源码+程序+LW+调试部署)
[附源码]计算机毕业设计Python安卓少儿英语在线学习平台APPodto4(源码+程序+LW+调试部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Pyth ...
- 第一章 第一节:Python基础_认识Python
Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...
- Python爬虫系列之爬取某社区团微信小程序店铺商品数据
Python爬虫系列之爬取某社区团微信小程序店铺商品数据 如有问题QQ请> 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学习交流,请勿用于非法用途 数据库仅用于去重使用,数据主要存 ...
- python烦恼_老男孩教育教你,如何摆脱Python学习中的烦恼?
Python虽然在大家看来是一门非常简单的计算机语言,也是很多人的首要选择,但是真正的学习起来,让人非常的烦恼,甚至学习过没几天,不少人觉得Python太难,想要放弃学习,我想很多人都会遇到这样的问题 ...
- python atm作业详解_Python学习day5作业-ATM和购物商城
Python学习day5作业 Python学习day5作业 ATM和购物商城 作业需求 ATM:指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆,用 ...
- python简单实践作业_【Python】:简单爬虫作业
使用Python编写的图片爬虫作业: #coding=utf-8 import urllib import re def getPage(url): #urllib.urlopen(url[, dat ...
- python经济学_用python学习中级微观经济学【WARP篇】
与中微相伴的一学期终于结束了,现将平时写了代码但没时间整理的内容整合一下. 用python学习中级微观经济学,顾名思义,即用py程序(主要是sympy模块)解题. 写这些小程序的初衷是做题目太烦了,而 ...
- python 云计算_云计算开发学习笔记:Python的环境搭建
大家都知道学好Python是进入云计算领域的基础,那么在学习之前我们先来了解下Python环境是如何搭建的.Python可应用于多种平台,包括大家熟悉的Window,Linux 和 Mac OS X. ...
- 女生适合学python吗_女生适合学习Python吗?
原标题:女生适合学习Python吗? 随着人工智能的快速发展,Python语言越来越被大众所熟知.从招聘网站上可以看到,Python开发专业人才呈现严重的供不应求趋势,这也吸引了很多人想要进入Pyth ...
- python课件_《python学习课件》.ppt
python语言介绍 目 录 / CONCENTS Python概述 Python基本语法 01 02 Python数据结构 03 Python字符串 04 Python简单程序编写 05 1.Pyt ...
最新文章
- hung-yi lee_p1_机器学习是什么
- 2018秋寒假作业6—PTA编程总结3
- 【Linux 经典面试题】
- ruby简单的基本 6
- vmware创建虚拟机不识别网卡
- 应用交付老兵眼中的Envoy, 云原生时代下的思考
- 全系标配!Redmi K40系列锁定三星E4材质OLED屏幕
- linux 内核参数分析,linux 内核参数VM调优 之 参数调节和场景分析
- tutte定理证明hall定理_县级数学教研网课:有趣的勾股定理证明,课件用几何画板制作...
- ScreenToClient
- 【修炼五】用户需求系统需求
- it is forbidden to set both [discovery.seed_hosts] and [discovery.zen.ping.unicast.hosts]
- 报童、钱包和迪米特法则(设计模式迪米特原则经典论文翻译)
- LaTeX环境安装及入门之入门使用
- Ansible playbook 详解
- 构造方中的this关键字
- c语言标准代码风格,C语言代码书写风格
- 通达oa php冲突,通达OA某版本系统存在通用SQL注入(附注射技巧)
- html 函数参数 字符串转义字符串,转义html标签符函数:html_escape()
- Honeywell EPKS R5XX 系统装机及配置手册