时隔半年再写购物车程序并改进

时隔了半年时间,重新把购物车程序拿出来再写一遍,感觉对于循环语句比之前熟悉多了,脑子里面开始有程序流程图,之前懵懵懂懂地跟着老师来写,现在基本可以自己写,自己判断问题出在哪里了。

这段程序没用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("\n您选购的商品是:{}".format(p_item))
28                 print("\n您的工资余额是:{}\n".format(salary))
29             else:
30                 print ("\n您的余额不足\n")
31     elif choice=='q':
32         print("\n您本次购买的商品是:{}".format(shopping_cart))
33         print("\n您的工资余额为:{}".format(salary))
34         break
35 
36     else:
37         print("输入错误,只能输入商品序列号相关数字!")
38 
39 else:
40     print("输入错误,只能输入数字!")

 

posted @ 2018-09-09 16:40  洪韬  阅读(...)  评论(...编辑  收藏