Python流程控制-条件语句和循环语句

最近学习了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

 

 

 

运行截图:

 

posted on 2017-10-25 22:34  kelake  阅读(223)  评论(0编辑  收藏  举报

导航