描述:
1.启动程序后,让用户输入金额,然后打印出所有的商品及其价格
   如果输入的不是数字则退出程序
  
2.允许用户输入商品的编号来购买商品
   如果输入的是数字则判断数字是否合理,如果合理则扣钱,加入用户的购物车
   如果输入的是q则退出程序
   如果输入的是其他字符或符号则提示输入有误,询问是否重新输入
       如果重新输入的是y则继续让用户输入产品序号
       否则退出程序,并打印出已经购买的商品
3.退出程序时打印所购买的商品
流程图

wKiom1mTFzfj5CGLAABP1Elgcnw022.png-wh_50

#!usr/bin/evn python
#-*-coding utf-8  -*-

product_list = [
    ("宝马",1000),
    ("大众",700),
    ("丰田",900),
    ("宾利",1100),
    ("本田",950),
]#创建一个produce_list字典存放产品及价格

shooping_cart =dict()#创建一个字典用于存储用户已经购买的产品,和购买的件数

while True:
    remain_sum = input("请输入您的余额:")
    if remain_sum.isdigit():
        print("您的购物车空空如也。。。。。")
        remain_sum=int(remain_sum)
        loop = 0
        while True:
            if loop ==0:#只有用户刚进入的时候显示余额,即第一次执行while循环时打印余额
                print("|-----------|\n|余额",remain_sum,"\n|___________|")
            loop =1
            print("====商品列表====")
            for index,product in enumerate(product_list):
                print(index,product[0],product[1])
            while True:
                user_choice = input("请输入您要购买的商品序号》》》")
                if user_choice.isdigit():#判断输入的是否是数字
                    user_choice = int(user_choice)
                    if -1< user_choice<len(product_list):#判断输入的商品编号是否存在
                        product = product_list[user_choice][0]
                        pice = product_list[user_choice][1]
                        if remain_sum >= pice:#只有商品接个不大于余额时才会扣款并加入购物车
                            remain_sum -=pice
                            if product in shooping_cart:#将购买的商品加入用户购物车,并统计购买的数量
                                shooping_cart[product] +=1
                            else:
                                shooping_cart[product]=1
                            break
                        else:
                            print("---->您的余额为%s,请选择其他商品<-----"%remain_sum)
                            recharge = input("请问您是否充值:")
                            if  recharge == "y":
                                add = input("请输入您充值的金额:")
                                while not add.isdigit():
                                    add = input("您的输入有误,请重新输入您充值的金额:")
                                remain_sum += int(add)
                                print("您充值后的余额为:", remain_sum)
                                break
                            else:
                                break
                    else:
                        print("---->您选择的商品不存在<-----")
                elif user_choice == "q":#如果用户输入的是q而不是商品编号则推出程序,并打印出用户所购买的商品
                    if len(shooping_cart)==0:
                            print("轻轻的你走了,正如你轻轻的来,没有带有一件商品")
                    else:
                        print("您购买的商品如下:")
                        key = list(shooping_cart.keys())
                        for item in  key:
                            print(item,":",shooping_cart[item])
                    exit()
                else:#如果用户输入的既不是商品编号也不是q则提示输入有误并决定是否继续购物
                    if input("《《《您的输入有误》》》\n<---->是否继续购物 ^_^ :")=="y":
                        continue
                    else:#如果用户不输入y,则打印用户购买的商品及数量,并推出程序
                        if len(shooping_cart)==0:
                            print("轻轻的你走了,正如你轻轻的来,没有带有一件商品")
                        else:
                            print("您购买的商品如下:")
                            key = list(shooping_cart.keys())
                            for item in  key:
                                print(item,":",shooping_cart[item])
                            exit()
    else:
        print("您的货币无法流通,请换取人民币再来购物!!!")
        if input("请问是否继续购物》》》")=="y":
            continue
        else:
            print("您已经离开商店,欢迎下次光临.......")
            exit()