共两题,要求为纸上写代码,总时间 30 min,请合理分配时间
(若在线答题,要求在注释中阐述设计思路,这样做的优缺点)
1,实现函数,输入字符串,输出其对应的对象:
Input:
string1 = '["ITEM0001 x 1", "ITEM0013 x 2", "ITEM0022 x 1"]'
Output:
obj1 = {
"ITEM0001": 1,
"ITEM0013": 2,
"ITEM0022": 1,
}
2,在上题的基础上,增加额外信息
ITEM 指的是商品:
ITEM0001 的价格 为 10;
ITEM0013 的价格 为 20;
ITEM0022 的价格 为 30。
Input:
string1 = '["ITEM0001 x 1", "ITEM0013 x 2", "ITEM0022 x 1"]'
Output:
80
Input:
string1 = '["ITEM0006 x 1"]'
Output:
"ITEM 不合法!"
3,「附加题」在上两题的基础上,增加额外信息
优惠 1:
同时购买 ITEM0001 和 ITEM0022,则该商品半价
优惠 2:
满 100 减 30
优惠只能选一种。自动计算多种优惠的结果,并输出最优结果。
Input:
string1 = '["ITEM0001 x 1", "ITEM0013 x 2", "ITEM0022 x 1"]'
Output:
60
"优惠 1"
Input:
string1 = '["ITEM0001 x 1", "ITEM0013 x 3", "ITEM0022 x 1"]'
Output:
70
"优惠 2"
4,mongodb 数据库表设计:
将第 2 题的商品表放到数据库中,
将第 3 题的优惠结果放到数据库中。
# -*- coding: utf-8 -*-
# @Author : Fengqi(jmps515@163.com)
# @Time : 2021/6/8 下午1:54
# @File : test.py
# @Software: PyCharm
# @Python : 3.6
import pymongo
# 封装数据库函数
class Mongodb(object):
def __init__(self):
self.mongo_url = 'localhost'
self.mongo_db = 'goods'
self.client = pymongo.MongoClient(self.mongo_url)
self.db = self.client[self.mongo_db]
# 插入字典数据
def process_item(self, item):
tablename = 'goods'
self.db[tablename].insert(dict(item)