zoukankan      html  css  js  c++  java
  • 购物车小程序

    需求

    购物车程序:

    1、启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表

    2、允许用户根据商品编号购买商品

    3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒

    4、可随时退出,退出时,打印已购买商品和余额

    5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示

    6、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买

    7、允许查询之前的消费记录

    代码20180424

     1 #!/usr/bin/python
     2 # -*- coding: utf-8 -*-
     3 
     4 prod_list = [
     5       ["iphone", 5000],
     6       ["Mac Pro", 12000],
     7       ["Starbucks", 31],
     8       ["alex", 81],
     9       ["Bike", 800]]
    10 
    11 
    12 user_list = open('user_list', 'r+', encoding='utf-8')
    13 
    14 name = input('请输入用户名: ')
    15 password = input('请输入密码')
    16 
    17 user = eval(str(user_list.read()))
    18 
    19 while True:
    20     # 判断用户名是否存在
    21     if name in user.keys():  # 非初次登录用户
    22         # 判断用户登陆信息是否正确
    23         if password in user[name]:  # 用户名密码正确
    24             salary = int(user[name][password])
    25             print('您的工资余额是33[31;1m%s33[0m' % salary)
    26             break
    27         else:
    28             password = input('密码错误,请重输:')
    29             continue
    30     else:  # 首次登陆,将用户信息添加入user_list
    31         new_user = {}
    32         salary = input('salary: ')
    33         if salary.isdigit():
    34             salary = int(salary)
    35             new_user[password] = salary
    36             user[name] = new_user
    37             user_list.seek(0)
    38             user_list.write(str(user))
    39             break
    40         else:
    41             print('请重输')
    42             continue
    43 
    44 
    45 # 打开已购买清单
    46 shopping_list = open('shopping_list', 'r+', encoding='utf-8')
    47 history = eval(str(shopping_list.read()))
    48 
    49 if name not in history:
    50     history[name] = []  # 首次登陆用户,历史清单为空
    51 shopping_history = history[name]  # 非首次登陆用户的历史购物信息
    52 shopping_new = []  # 本次购物信息
    53 print_hisotry = input('是否打印历史购物清单 =?')
    54 if print_hisotry == 'Y':
    55     print('-------- 历史购物清单 --------')
    56     print(shopping_history)
    57     print('-------- The End --------')
    58 
    59 while True:
    60     print('-------- 在售商品列表 --------')
    61     for index, item in enumerate(prod_list):
    62         print(index, item)
    63     print('-------- The End --------')
    64 
    65     choice = input('请选择购买哪个商品')
    66     if choice == 'quit':  # 退出时,将更新的用户信息存入user_list, 并打印本次购买商品清单
    67         user[name][password] = str(salary)
    68         user_list.seek(0)
    69         user_list.write(str(user))
    70         print('-------- 您已成功购买商品清单 --------')
    71         print(shopping_new)
    72         print('您的工资余额是33[31;1m%s33[0m' % salary)
    73         print('-------- The End --------')
    74         # 将本次购物清单与历史购物信息合并
    75         shopping_history.extend(shopping_new)
    76         history[name] = shopping_history
    77         shopping_list.seek(0)
    78         shopping_list.write(str(history))
    79         exit(0)
    80     elif not choice.isdigit():
    81         print('请输入有效的商品索引')
    82     elif len(prod_list) > int(choice) >= 0:  # 用户选择未超出商品列表范围
    83         p_item = prod_list[int(choice)]
    84         if salary >= p_item[1]:
    85             salary -= p_item[1]
    86             shopping_new.append(p_item)
    87             print('-------- 本次购物清单 --------')
    88             print(shopping_new)
    89             print('您的工资余额是33[31;1m%s33[0m' % salary)
    90             print('-------- The End --------')
    91         else:
    92             print('余额不足')
    93     else:
    94         print('请输入有效的商品索引')
    View Code

    shipping_list:

    {'Lucy': [['iphone', 5800], ['bike', 800]], 'Ada': [['iphone', 5800], ['alex', 81], ['Mac Pro', 12000]], 'Jack': [['Starbucks', 31]]}

    user_list:

    {'Lucy': {'123': '3200'}, 'Ada': {'abc': '79919'}, 'Jack': {'891': '90000'}, 'Eleanor': {'abc': '8400'}, 'Mike': {'345': '8200'}}



  • 相关阅读:
    前后端渲染
    ES6模块化
    关于跨域请求
    移动端经常出现的兼容问题
    移动端开发
    4.sass的分支结构、循环结构、函数
    3.sass的数据类型与函数
    2.sass变量、嵌套、混合(mixin)、继承拓展、@import、comment
    1.sass的安装,编译,还有风格
    微信小程序上拉加载分页数据---包括tab选项卡切换(优化方案)
  • 原文地址:https://www.cnblogs.com/cheese320/p/8930189.html
Copyright © 2011-2022 走看看