python_购物车代码的分解及全部代码

购物车代码,一步一步进行(编写代码的过程,就是一个一步一步递进式的思考)

如下:

第一步,实现与用户交互以及答应可购物的清单

 对于上一步有一个缺点就是打印出俩的购物清单是一个元祖,用户看起来并不方便,而且没有编号,首先我们实现如何让用户看起来好看

 1 product_list=[
 2      ('book',100),
 3      ('Mac Pro',9000),
 4      ('watch',500),
 5      ('coffee',30),
 6      ('Python',106),]
 7 saving=input('input your money:')
 8 if saving.isdigit():
 9     saving=int(saving)
10     for i in product_list:
11         print(i)

输出结果:

C:\Users\lenovo\PycharmProjects\fullstack\venv\Scripts\python.exe C:/Users/lenovo/PycharmProjects/fullstack/week1/day6/shopping.py
input your money:123
('book', 100)
('Mac Pro', 9000)
('watch', 500)
('coffee', 30)
('Python', 106)

Process finished with exit code 0

然后我们进行编号:

方法一:

方法二:

对于上面给用户呈现出来的是一个原则的形式,但是并不好看,我们不想让它以元祖的形式出现,那么:

知识点:

列表:

a,b=[2,3]

print(a)

print(b)

2

3

元祖;一样的道理

 思路清理,进行一个简短的代码思路清理,然后对其补充修改

通过输出我们可以得知p_item是一个元祖('mac pro', 9000) 它的价位在第二个位置,对于元祖来说就是1

所以:

然后建立一个空列表,充当购物车,买了什么东西放到空列表里面:

对q进行修饰

完整的代码:

 1 #_author:"Xia liu"
 2 #data:2020/2/11
 3 product_list=[('book',100),('Mac Pro',9000),('watch',500),('coffee',30),('Python',106)]
 4 saving=input('input your money:')
 5 shopping_car=[]
 6 if saving.isdigit():
 7     saving=int(saving)
 8     while True:
 9         for i,v in enumerate (product_list,1):
10             print(i,v)
11         choice = input('选择购买商品编号[退出:q]:')
12         if choice.isdigit():
13             choice = int(choice)
14             if choice > 0 and choice < len(product_list):
15                 p_item = product_list[choice-1]
16                 if p_item[1] < saving:
17                     saving -= p_item[1]
18                     shopping_car.append(p_item)
19 
20                 else:
21                     print('余额不足,还剩%s'%saving)
22                 print(p_item)
23             else:
24                 print('编码不存在')
25         elif choice=="q":
26             print('---------您已经购买如下商品-----------') #如果想退出
27             for i in shopping_car:
28                 print(i)
29             print('您的余额为%s元' % saving)
30             break
31         else:
32             print("invalid input")
33 else:
34     print('编码不存在')

猜你喜欢

转载自www.cnblogs.com/Crystal0717/p/12294781.html