本文实例讲述了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