最近学习了Python的数据类型以及条件判断和循环判断,做了一个简易的购物车demo
实现在购物车中添加(list的append方法)商品,删除商品(list的pop和remove方法),并具有简单的判断。
1、插入的商品序号如果超过list的元素总数进行提示,并重新输入;
2、使用序号删除商品时,如果序号超出list元素总数进行提示,并重新输入;
3、使用商品名称删除商品时,如果购物车没有此商品则进行提示,并重新输入;
Demo的代码如下:
1 #! /usr/bin/env python
2 # _*_ coding:utf-8 _*_
3 # @Time :2017/10/25-21:55
4 # @Author :Kelake
5 # File :shopping_cart_demo.py
6
7 shoplist = ['apple', 'mango', 'carrot', 'banana']
8 print "\"shoplist\" 的数据类型是:%s,总共有%s个商品。" % (type(shoplist), len(shoplist))
9
10 print "当前的购物列表是:%s" % shoplist
11
12 i = "列表list的input使用"
13 print "***" * 10 + i + "***" * 10
14 while True:
15 x = raw_input("请输入需要追加到购物列表后面的商品:\n")
16 if x not in shoplist:
17 shoplist.append(x)
18 print "使用\"list\"的\"append\"追加的购物列表是:%s" % shoplist
19 break
20 else:
21 print "购物列表存在你输入的商品!"
22
23 ins = "list的insert使用"
24 print "***" * 10 + ins + "***" * 10
25 while True:
26 insertA = input("请输入需要插入到列表位置的序号:\n")
27 if insertA >= 0 and insertA < len(shoplist):
28 insertB = raw_input("请输入需要添加的商品名:\n")
29 shoplist.insert(insertA, insertB)
30 print "使用\"list\"的\"insert\"的插入功能的购物列表是:%s" % shoplist
31 break
32 else:
33 print "请输入(0 - %s)的整数,请重新输入:" % (str(len(shoplist) - 1))
34 # if insertA == type(int) and insertB == type(str):
35 #
36 # elif insertA != type(int) and insertB == type(str):
37 # print "请输入整数,请重新输入。"
38 # elif insertA == type(int) and insertB != type(str):
39 # print "请输入字符串,请重新输入。"
40
41 # else:
42 # print "输入不正确,请重新输入。"
43
44 P = "list的pop使用"
45 print "***" * 10 + P + "***" * 10
46 while True:
47 popA = input("请输入需要删除的商品的序号(0-%s):\n" % str(len(shoplist) - 1))
48 if 0 <= popA <= len(shoplist):
49 shoplist.pop(popA)
50 print "使用\"list\"的\"pop\"的删除功能的购物列表是:%s" % shoplist
51 break
52 else:
53 print "输入的数值范围不对,请重新输入。"
54
55 # print "***list的remove使用" * 20
56 # removeA = raw_input("请输入需要删除的商品的名称:\n")
57 # shoplist.remove(removeA)
58 # print "使用\"list\"的\"remove\"的删除功能的购物列表是:%s"%shoplist
59
60 re = "***" * 10 + "list的remove使用" + "***" * 10
61 print re
62 while True:
63 removeA = raw_input("请输入需要删除的商品的名称:\n")
64 if removeA in shoplist:
65 shoplist.remove(removeA)
66 print "使用\"list\"的\"remove\"的删除功能的购物列表是:%s" % shoplist
67 break
68 else:
69 print "您输入的不是购物车内的产品,请重新输入!"
70
71 while True:
72 inputC = raw_input("如果要倒序排列购物车商品请按s,顺序排列购物车请按r:\n")
73 if inputC == "s":
74 print "倒序排列购物列表为:"
75 shoplist.sort()
76 print shoplist
77 break
78 elif inputC == "r":
79 print "顺序排列购物列表为:"
80 shoplist.reverse()
81 print shoplist
82 break
83 else:
84 print "输入有误,请重新输入:"
View Code
后续再根据学习进度,不断的进行Demo的更新。
Python中,continue 、 break 、 pass 、 exit() 的区别
pass:不做任何事,只起到占位符,方便后续添加相关逻辑。
continue:跳出本次循环
break:结束循环
exit():结束整个程序
Python中 range 和xrange的区别:
range产生的是一个列表,xrange产生的是一个类似迭代器。
对于较大的集合的时候,xrange比range性能好。
range一次把所有的数据都返回,xrange每次调用返回其中的一个值。
对比Demo
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 # @Time :2017/10/17 21:52
4 # @Author :Kelake
5 # File :test.py
6
7 print range(1 , 10)
8 print xrange(1 , 10)
9 print list(xrange(1,10))
10
11 print type(range(1,10))
12 print type(xrange(1,10))
13
14 import time
15 sum1 = 0
16 start1 = time.clock()
17 for i in range(1,100000000):
18 sum1 += i
19 end1 = time.clock()
20 print end1 - start1
21 print sum1
22
23 import time
24 sum2 = 0
25 start2 = time.clock()
26 for i in xrange(1,100000000):
27 sum2 += i
28 end2 = time.clock()
29 print end2 - start2
30 print sum2
View Code
运行截图: