创新实训一

创新实训一

一、我的任务
用户选定住宿时间(入住时间和离开时间),入住人数(具体人数),酒店的星级或者民宿,选定要去的景点或者商圈,然后根据这些信息推荐酒店,默认按照综合评分排序,用户也可以按照酒店到景点的距离远近、酒店的评分高低、点评数多少、价格高低来对这些酒店进行筛选,而综合评分是根据这些特征对酒店的综合评价。
推荐酒店时会比较多家酒店订购网站上的价格,显示最低价格,点击进入详情页面,可以查看到各大酒店订购网站的具体价格,用户可以在该页面直接进入选中的酒店订购网站进行预订。

二、初步设计算法
由于我的任务主要是负责酒店推荐算法,不考虑数据获取,那么我先自行设计一个数组,数组内容为酒店信息,包括酒店名称,距离选定地点的距离,评分,评论数,价格,星级,位置等。将这些数据进行排序,分别按照距离远近,评分高低,评论数量,价格高低进行排序。

# 创新项目实训
# 比价&酒店推荐系统
# 住宿查询

# 用户选定住宿时间(入住时间和离开时间),入住人数(具体人数),酒店的星级或者民宿,
# 选定要去的景点或者商圈,然后根据这些信息推荐酒店,默认按照综合评分排序,
# 用户也可以按照酒店到景点的距离远近、酒店的评分高低、点评数多少、价格高低来对这些酒店进行筛选,
# 而综合评分是根据这些特征对酒店的综合评价。
# 推荐酒店时会比较多家酒店订购网站上的价格,显示最低价格,
# 点击进入详情页面,可以查看到各大酒店订购网站的具体价格,
# 用户可以在该页面直接进入选中的酒店订购网站进行预订。
import copy
#定义一个初始测试数据集——数组
#选择地点后,得到该地区的酒店实时信息


testdata=[[],   #酒店名称
          [],   #酒店距离选定地点的距离
          [],   #酒店评分
          [],   #酒店评论数
          [],   #酒店房间最低价格(根据人数推荐,如果是一个人,优先推荐单间,两个人及以上优先推荐标准双人间
          [],   #星级
          []    #位置
          ]
#将testdata进行转置

#定义排序算法,根据评分,价格,评论数,距离远近排序
#根据酒店距离选定地点的远近进行排序,按照距离升序排序
def sort_distance(testdata):
    copydata=copy.deepcopy(testdata)    #深度拷贝测试数组,对拷贝数组进行操作
    for i in range(len(copydata)-1):
        for i in range(len(copydata)-1):
            temp=copydata[i];
            if(copydata[i][1]>copydata[i+1][1]):
                copydata[i]=copydata[i+1]
                copydata[i+1]=temp
    return copydata

#根据评分高低进行排序
def sort_points(testdata):
    copydata=copy.deepcopy(testdata)    #深度拷贝测试数组,对拷贝数组进行操作
    for i in range(len(copydata)-1):
        for i in range(len(copydata)-1):
            temp=copydata[i];
            if(copydata[i][2]<copydata[i+1][2]):
                copydata[i]=copydata[i+1]
                copydata[i+1]=temp
    return copydata

#根据评论数进行降序排列
def sort_comment(testdata):
    copydata=copy.deepcopy(testdata)    #深度拷贝测试数组,对拷贝数组进行操作
    for i in range(len(copydata)-1):
        for i in range(len(copydata)-1):
            temp=copydata[i];
            if(copydata[i][3]<copydata[i+1][3]):
                copydata[i]=copydata[i+1]
                copydata[i+1]=temp
    return copydata

#根据价格高低进行降序排列
def sort_price_descend(testdata):
    copydata=copy.deepcopy(testdata)    #深度拷贝测试数组,对拷贝数组进行操作
    for i in range(len(copydata)-1):
        for i in range(len(copydata)-1):
            temp=copydata[i];
            if(copydata[i][4]<copydata[i+1][4]):
                copydata[i]=copydata[i+1]
                copydata[i+1]=temp
    return copydata

#根据价格高低进行升排列
def sort_price_ascend(testdata):
    copydata=copy.deepcopy(testdata)    #深度拷贝测试数组,对拷贝数组进行操作
    for i in range(len(copydata)-1):
        for i in range(len(copydata)-1):
            temp=copydata[i];
            if(copydata[i][4]>copydata[i+1][4]):
                copydata[i]=copydata[i+1]
                copydata[i+1]=temp
    return copydata
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值