最近学习了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 "输入有误,请重新输入:"
后续再根据学习进度,不断的进行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
运行截图: