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

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

如下:

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

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

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

product_list=[
     (‘book‘,100),
     (‘Mac Pro‘,9000),
     (‘watch‘,500),
     (‘coffee‘,30),
     (‘Python‘,106),]
saving=input(‘input your money:‘)
if saving.isdigit():
    saving=int(saving)
    for i in product_list:
        print(i)输出结果:
C:\Users\lenovo\PycharmProjects\fullstack\venv\Scripts\python.exe C:/Users/lenovo/PycharmProjects/fullstack/week1/day6/shopping.pyinput 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进行修饰

 
 
 
完整的代码:

#_author:"Xia liu"
#data:2020/2/11
product_list=[(‘book‘,100),(‘Mac Pro‘,9000),(‘watch‘,500),(‘coffee‘,30),(‘Python‘,106)]
saving=input(‘input your money:‘)
shopping_car=[]
if saving.isdigit():
    saving=int(saving)
    while True:
        for i,v in enumerate (product_list,1):
            print(i,v)
        choice = input(‘选择购买商品编号[退出:q]:‘)
        if choice.isdigit():
            choice = int(choice)
            if choice > 0 and choice < len(product_list):
                p_item = product_list[choice-1]
                if p_item[1] < saving:
                    saving -= p_item[1]
                    shopping_car.append(p_item)

                else:
                    print(‘余额不足,还剩%s‘%saving)
                print(p_item)
            else:
                print(‘编码不存在‘)
        elif choice=="q":
            print(‘---------您已经购买如下商品-----------‘) #如果想退出
            for i in shopping_car:
                print(i)
            print(‘您的余额为%s元‘ % saving)
            break
        else:
            print("invalid input")
else:
    print(‘编码不存在‘)

相关推荐