时隔了半年时间,重新把购物车程序拿出来再写一遍,感觉对于循环语句比之前熟悉多了,脑子里面开始有程序流程图,之前懵懵懂懂地跟着老师来写,现在基本可以自己写,自己判断问题出在哪里了。
这段程序没用pycharm来写,直接用NOTEPAD++,感觉还很不错,昨天调试了NOTEPAD++运行python的环境,简单轻度的程序都可以试着用这个写了。界面还是很漂亮的。
编程要求和编程日志思考:
1、写一段商城程购物车序的代码
2、用列表把商城的商品清单存储下来
(1)不能用字典,因为字典无法用序列号打印,用列表中存储元祖的方式。
(2)存到列表 shopping_mail,打印购物车的序列号及表单内容,用enumerate()函数,学习一下使用enumerate()函数。
//
enumerate是翻译过来是枚举的意思,看下它的方法原型:
enumerate(sequence, start=0),返回一个枚举对象。sequence必须是序列或迭代器iterator,或者支持迭代的对象。
enumerate()返回对象的每个元素都是一个元组,每个元组包括两个值,一个是计数,一个是sequence的值,计数是从start开始的,start默认为0。
//
3、购物车的列表为shopping_cart
4、用户首先输入工资金额,判断输入为数字
(1)判断输入是否是数字需要使用.isdigit()方法(判断字符串是否只由数字组成)
例如:
//
str = "123456"
print str.isdigit()
结果:TRUE
str = "this is string example....wow!!!"
print str.isdigit()
结果:FALSE
//
//
While Ture:语句的运算速度比While 1:运算速度要慢,所以尽量while true都用 while 1:来写
同时,if x==ture的运算速度比 if x:慢,所以尽量用if x:来替代。
//
5、用户从商城购物清单中选择购买物品,每次购买成功就用工资减去物品单价
6、判断用户金额是否足够,不足够提示用户
//
(1)shopping_mail是一个表格内嵌了元祖,购物车shopping_cart是一个空表格
(2)choice是选择的数值,可以根据购物清单上的序列号来进行选择。这个简化了购物流程。需要判断choice必须是在0和len(shopping_mail)之间,否则就会出错
(3)p_item是choice这个数值所代表的商品,p_item实际上是一个元祖,比如('Iphone',5800),p_item[0]对应名称,p_item[1]对应数值。
(4)如果直接把元祖p_item与工资进行对比,计算机会报错,因为元祖里面包含2个元素
//
7、如果用户不想再继续购物,则按Q键退出菜单
8、用户退出之后,将用户购买的清单打印出来。
9、尽量学习带颜色输出几个重点信息字符。
//
(1)字符串*数值可以用来控制空格,横杠等。
(2)/n是回车;/t是类似TAB键
//
1 space="-"*25 2 shopping_cart=[] 3 shopping_mail= [ 4 ('Iphone',5800), 5 ('Mac Pro',9800), 6 ('Bike',800), 7 ('Watch',10600), 8 ('Coffee',31), 9 ('Alex Python',120), 10 ] 11 salary=input("请输入您的工资金额:") 12 if salary.isdigit()==True: 13 salary=int(salary) 14 while 1: 15 for i in shopping_mail: 16 print(space) 17 print(shopping_mail.index(i),i) 18 print(space) 19 choice=input("请输入您选择的商品序号: ") 20 if choice.isdigit(): 21 choice=int(choice) 22 if choice>-1 and choice<len(shopping_mail): 23 p_item=shopping_mail[choice] 24 if p_item[1]<=salary: 25 shopping_cart.append(p_item) 26 salary=salary-p_item[1] 27 print(" 您选购的商品是:{}".format(p_item)) 28 print(" 您的工资余额是:{} ".format(salary)) 29 else: 30 print (" 您的余额不足 ") 31 elif choice=='q': 32 print(" 您本次购买的商品是:{}".format(shopping_cart)) 33 print(" 您的工资余额为:{}".format(salary)) 34 break 35 36 else: 37 print("输入错误,只能输入商品序列号相关数字!") 38 39 else: 40 print("输入错误,只能输入数字!")