本文实例讲述了Python实现购物车功能的方法。分享给大家供大家参考,具体如下:
1、程序的源代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
salary = input ( 'input your salary:' )
if salary.isdigit:
salary = int (salary)
else :
exit( 'salary is not digit!!' )
welcome_msg = 'welcome to our shoping mall'
print (welcome_msg.center( 50 , '-' ))
product_list = [
( 'Iphone' , 5888 ),
( 'Mac Air' , 8000 ),
( 'XiaoMi' , 19.9 ),
( 'coffee' , 30 ),
( 'Tesla' , 820000 ),
( 'Bike' , 700 ),
( 'Cloth' , 200 )
]
shop_car = []
#推出标志位
exit_flag = 0
while exit_flag is not True :
print ( 'product list :' .center( 50 , '-' ))
for item in enumerate (product_list):
index = item[ 0 ] #获得商品序号
p_name = item[ 1 ][ 0 ] #获得商品名称
p_price = item[ 1 ][ 1 ] #获得商品价格
print (index,p_name,p_price)
user_choice = input ( '[q=quit,c=check] what do you want to buy?:' )
if user_choice.isdigit():
user_choice = int (user_choice)
if user_choice < len (product_list): #输入的商品序号要在范围之内
p_item = product_list[user_choice] #选择的商品
if p_item[ 1 ] < = salary: #买得起
shop_car.append(p_item) #放入购物车
salary - = p_item[ 1 ] #减钱
print ( 'purchased products are:' .center( 40 , '-' ))
for item in shop_car:
print (item)
print ( 'Your balance is [%s]' % salary)
else : #买不起
print ( 'Your balance is [%s],cannot buy the product!' % salary)
else :
print ( 'we do not have the product,please input again!' )
elif user_choice = = 'q' or user_choice = = 'quit' :
print ( 'purchased products are:' .center( 40 , '-' ))
for item in shop_car:
print (item)
print ( 'END ' .center( 40 , '-' ))
print ( 'Your balance is [%s]' % salary)
exit_flag = True
elif user_choice = = 'c' or user_choice = = 'check' :
print ( 'purchased products are:' .center( 40 , '-' ))
for item in shop_car:
print (item)
print ( 'Your balance is %d' % salary)
print ( 'Check ' .center( 40 , '-' ))
else :
print ( 'Incorrect input ,please input again!!' )
|
2、程序运行结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
input your salary: 10000
- - - - - - - - - - - welcome to our shoping mall - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - product list : - - - - - - - - - - - - - - - - - -
0 Iphone 5888
1 Mac Air 8000
2 XiaoMi 19.9
3 coffee 30
4 Tesla 820000
5 Bike 700
6 Cloth 200
[q = quit,c = check] what do you want to buy?: 0
added [[( 'Iphone' , 5888 )]] into shop car ,yourcurrent balence is 4112
- - - - - - - - - - - - - - - - - - product list : - - - - - - - - - - - - - - - - - -
0 Iphone 5888
1 Mac Air 8000
2 XiaoMi 19.9
3 coffee 30
4 Tesla 820000
5 Bike 700
6 Cloth 200
[q = quit,c = check] what do you want to buy?: 1
Your balance is [ 4112 ],cannot buy the product!
- - - - - - - - - - - - - - - - - - product list : - - - - - - - - - - - - - - - - - -
0 Iphone 5888
1 Mac Air 8000
2 XiaoMi 19.9
3 coffee 30
4 Tesla 820000
5 Bike 700
6 Cloth 200
[q = quit,c = check] what do you want to buy?:c
shop car list are [[( 'Iphone' , 5888 )]],your balance is 4112
- - - - - - - - - - - - - - - - - - product list : - - - - - - - - - - - - - - - - - -
0 Iphone 5888
1 Mac Air 8000
2 XiaoMi 19.9
3 coffee 30
4 Tesla 820000
5 Bike 700
6 Cloth 200
[q = quit,c = check] what do you want to buy?: 4
Your balance is [ 4112 ],cannot buy the product!
- - - - - - - - - - - - - - - - - - product list : - - - - - - - - - - - - - - - - - -
0 Iphone 5888
1 Mac Air 8000
2 XiaoMi 19.9
3 coffee 30
4 Tesla 820000
5 Bike 700
6 Cloth 200
[q = quit,c = check] what do you want to buy?:q
- - - - - - - - purchased products are: - - - - - - - - -
( 'Iphone' , 5888 )
- - - - - - - - - - - - - - - - - - END - - - - - - - - - - - - - - - - - -
Your balance is [ 4112 ]
Process finished with exit code 0
|
3、学习到的知识点
(1)print('product list :'.center(50,'-'))
1
2
|
>>> print ( 'product list :' .center( 50 , '-' ))
- - - - - - - - - - - - - - - - - - product list : - - - - - - - - - - - - - - - - - -
|
(2)for item in enumerate(product_list):
1
2
3
4
5
6
7
8
9
|
>>> for item in enumerate (product_list):
print (item)
( 0 , ( 'Iphone' , 5888 ))
( 1 , ( 'Mac Air' , 8000 ))
( 2 , ( 'XiaoMi' , 19.9 ))
( 3 , ( 'coffee' , 30 ))
( 4 , ( 'Tesla' , 820000 ))
( 5 , ( 'Bike' , 700 ))
( 6 , ( 'Cloth' , 200 ))
|
enumerate函数返回一个生成器对象:(index,item)的元组。
(3)这里使用了列表+元组的形式存储商品列表,而不是字典,因为字典是无序的,每次打印顺序都不一样,而且不能通过索引进行取值。
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://blog.csdn.net/zora_lee/article/details/51635428