zoukankan      html  css  js  c++  java
  • python购物车

    题目

    作业需求:
    1. 用户先给自己的账户充钱:比如先充3000元。
    2. 页面显示 序号 + 商品名称 + 商品价格,如:
    1 电脑 1999
    2 鼠标 10

    n 购物车结算
    3. 用户输入选择的商品序号,然后打印商品名称及商品价格,并将此商品,添加到购物车,用户还可继续添加商品。
    4. 如果用户输入的商品序号有误,则提示输入有误,并重新输入。
    5. 用户输入n为购物车结算,依次显示用户购物车里面的商品,数量及单价,若充值的钱数不足,则让用户删除某商品,
    直至可以购买,若充值的钱数充足,则可以直接购买。
    6. 用户输入Q或者q退出程序。
    7. 退出程序之后,依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,账户余额多少。
    goods = [{"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998}, ]
     1 goods = [{"name": "电脑", "price": 1999},
     2          {"name": "鼠标", "price": 10},
     3          {"name": "游艇", "price": 20},
     4          {"name": "美女", "price": 998}, ]
     5 shopping_car = {}                                                       # 存储商品
     6 shopping_count = {}                                                      # 统计购物车各商品数量
     7 for i in range(len(goods)):
     8     shopping_count.setdefault(goods[i]['name'], 0)
     9 money_input = int(input('购买商品前,请为您的账户充值,充值金额为(单位:元):').strip())
    10 Flag = True
    11 while Flag:
    12     print('*****************************商品具体展示:****************************')
    13     for count_i in goods:
    14         print(goods.index(count_i) + 1, count_i['name'], count_i['price'])
    15     print('**********************************************************************')            # 打印商品
    16     # 用户输入选择的商品序号,然后打印商品名称及商品价格, 并将此商品,添加到购物车,用户还可继续添加商品。
    17     user_input = input('输入商品序号:
    (输入Q或者q退出程序): 
    (输入n结账): ').strip()
    18     if user_input.isdigit():
    19         user_input = int(user_input)
    20         if 0 < user_input <= len(goods):                                                          # 输入的是 1 2 3 4
    21             print(goods[user_input - 1]['name'], goods[user_input - 1]['price'])                # 打印商品及价格
    22             shopping_car[goods[user_input - 1]['name']] = goods[user_input - 1]['price'] # 购物车里面填充商品名称与价格
    23             for key in shopping_car.keys():
    24                 if key in goods[user_input - 1]['name']:                          # 判断输入的键是否在shopping_car内
    25                     shopping_count[key] += 1                                               # 若存在  shopping_count +1
    26             print(shopping_car)
    27             print(shopping_count)
    28         else:
    29             print('Sorry!您输入数字不在规定范围内,请重新输入!')
    30     elif user_input == 'Q' or user_input == 'q':
    31         print('亲!没有您满足的商品?我们会用诚信打动您!期待您下次光临,Bye!')
    32         Flag = False
    33 #  5. 用户输入n为购物车结算,依次显示用户购物车里面的商品,数量及单价,若充值的钱数不足,则让用户删除某商品,
    34 #  直至可以购买,若充值的钱数充足,则可以直接购买。
    35     elif user_input == 'n':
    36         total_value = 0
    37         # print(shopping_car, shopping_count)                                                # 打印商品,数量,单价
    38         for key_1 in shopping_car.keys():
    39             for key_2 in shopping_count.keys():                                                      # 购物车总价
    40                 if key_1 == key_2:
    41                     total_value = total_value + shopping_count[key_2] * shopping_car[key_1]
    42         print('total_value = ', total_value)
    43         # 当充值的钱不足时,即购物车的值大于已充值的钱
    44         while total_value > money_input:
    45             total_value = 0
    46             user_input_again = input('请删除要删减的商品内容,每次删减一次(1:电脑,2:鼠标,3:游艇,4:美女,5:...)')
    47             user_input_again = int(user_input_again)
    48             print('**********************************************************************')
    49             for key in shopping_car.keys():
    50                 if key == goods[user_input_again - 1]['name']:        # 键相等
    51                     if shopping_count[key] == 0:                       # 购物车数量为零,保持不变
    52                         shopping_count[key] = shopping_count[key]
    53                     else:
    54                         shopping_count[key] -= 1                       # 购物车数量不为0,数量减1
    55                     print('商品数量:', shopping_count)
    56                     for key_1 in shopping_car.keys():
    57                         for key_2 in shopping_count.keys():
    58                             if key_1 == key_2:                     # 购物车shopping_car与shopping_count键相等
    59                                 total_value = total_value + shopping_count[key_2] * shopping_car[key_1]  # 计算删减后的购物车总价格
    60                     print('购物车剩余物品价值:', total_value, '')
    61                     print('**********************************************************************')
    62         # 依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,账户余额多少
    63         print('*******************************商品清单*******************************')
    64         print('此次用户购买的商品,数量,单价共计:')
    65         print(shopping_car)
    66         print(shopping_count)
    67         print('此次购买商品共消费:%s 元,且账户余额共计:%s 元' % (total_value, money_input - total_value))
    68         print('谢谢光临,请慢走!')
    69         print('*********************************End**********************************')
    70         Flag = False
    71     else:
    72         print('Sorry!您输入数字含有其他字符,请重新输入!')
  • 相关阅读:
    Devexpress之LayoutControl的使用及其控件布局设计
    C#入门笔记3 表达式及运算符2
    C#入门笔记3 表达式及运算符
    C#入门笔记2 变量
    C#入门笔记1
    Devexpress之GridControl显示序列号
    C++学习之重载运算符1
    解决"找不到该项目”无法删除该文件
    删除鼠标右键时“保存至360云盘”
    CSS基础知识——选择器
  • 原文地址:https://www.cnblogs.com/colin1314/p/9464880.html
Copyright © 2011-2022 走看看