当前位置: 首页 > news >正文

商品价格区间设置与排序--课后程序(Python程序开发案例教程-黑马程序员编著-第4章-课后作业)

实例2:商品价格区间设置与排序

在网上购物时,面对琳琅满目的商品,我们应该如何快速选择适合自己的商品呢?为了能够让用户快速地定位到适合自己的商品,每个电商购物平台都提供价格排序与设置价格区间功能。假设现在某平台共有10件商品,每件商品对应的价格如表1所示。

表1 商品价格

序号

价格

1

399

2

4369

3

539

4

288

5

109

6

749

7

235

8

190

9

99

10

1000

用户根据提示“请输入最大价格:”和“请输入最小价格:”分别输入最大价格和最小价格,选定符合自己需求的价格区间,并按照提示“1.价格降序排序(换行)2.价格升序排序(换行)请选择排序方式:”输入相应的序号,程序根据用户输入将排序后的价格区间内的价格全部输出。

本实例要求编写程序,实现以上描述的设置价格区间和价格排序的功能。

实例目标

  1. 掌握列表的排序,能分别采用降序和升序两种方式排列列表元素
  2. 掌握列表的遍历

实例分析

本实例的目的是从10个商品价格中选出位于价格区间的部分商品价格,进行排序并输出,这个过程可拆分为两步:

(1)按用户设置的价格区间选择部分商品价格。根据用户输入的最大价格和最小价格确定价格区间,依次取出10个商品价格进行比较:若某商品价格位于此区间中,则将其进行保存。待所有的商品价格均做完比较后,此时得到位于价格区间内的部分商品价格。

(2)按用户选择的排序方式排列商品价格。根据用户输入的排序方式,将上一步骤中得到的部分商品价格重新排列。

由于上述过程中涉及到遍历、排序、动态存储等操作,这里使用列表来存储商品价格。

代码实现

本实例的具体实现代码如下所示:

price_li = [399, 4369, 539, 288, 109, 749, 235, 190, 99,1000]

section_li = []

max_section = int(input("请输入最大价格:"))

min_section = int(input("请输入最小价格:"))

for i in price_li:

    if min_section <= i <= max_section:

        section_li.append(i)

print("1.价格降序排序")

print("2.价格升序排序")

choice_num = int(input("请选择排序方式:"))

if choice_num == 1:

    section_li.sort(reverse=True)

else:

    section_li.sort()

print(section_li)

以上代码定义了包含10个元素的列表price_li和空列表section_li,之后定义了变量max_section和min_section接收用户输入的两个数值,并将遍历列表price_li,将其中大于等于min_section或小于等于max_section的元素添加到列表section_li中,然后再次接收了用户选择的排序方式,根据排序方式排列列表section_li中的元素:若用户输入“1”,说明选择降序排列,即按从大到小的顺序排列列表元素;若用户输入“2”,说明选择升序排列,即按从小到大的顺序排列列表元素,最后将排序后的列表section_li进行输出。

代码测试

运行程序,在控制台分别输入最大价格为1000、最小价格为300、排序方式为1之后的输出结果如下所示:

请输入最大价格:1000

请输入最小价格:300

1.价格降序排序

2.价格升序排序

请选择排序方式:1

[1000, 749, 539, 399]

再次运行程序,在控制台分别输入最大价格为1000、最小价格为300、排序方式为2之后的结果如下所示:

请输入最大价格:1000

请输入最小价格:300

1.价格降序排序

2.价格升序排序

请选择排序方式:2

[399, 539, 749, 1000]

http://www.lryc.cn/news/33899.html

相关文章:

  • mybatis中sqlSession的使用
  • TPOT(Tree-based Pipeline Optimization Tool) API简介
  • Java 19和IntelliJ IDEA,如何和谐共生?
  • js循环判断的方法
  • git快速入门(1)
  • 韩国绿芯1~16通道触摸芯片型号推荐
  • Go语言设计与实现 -- http服务器编程
  • MySQL-视图
  • 都工作3年了,怎么能不懂双亲委派呢?(带你手把手断点源码)
  • Hive 运行环境搭建
  • SAP ABAP 深度解析Smartform打印特殊符号等功能
  • React17+React Hook+TS4 最佳实践仿 Jira 企业级项目笔记
  • 35- tensorboard的使用 (PyTorch系列) (深度学习)
  • ChatGPT在工业领域的用法
  • 使用Chakra-UI封装简书的登录页面组件(React)
  • Three.js初试——基础概念(二)
  • Qt音视频开发21-mpv内核万能属性机制
  • C语言学生随机抽号演讲计分系统
  • Spring Boot 3.0系列【12】核心特性篇之任务调度
  • Java操作XML
  • 女神节灯笼祝福【HTML+CSS】
  • CUDA并行计算基础知识
  • 88. 合并两个有序数组
  • 卢益贵(码客):软件开发团队的管理要素
  • 中小企业的TO B蓝海,如何「掘金」?
  • C++ 算法主题系列之集结0-1背包问题的所有求解方案
  • 【Vue】Vue常见的6种指令
  • 计算机科学与技术(嵌入式)四年学习资料_文件目录树
  • 【java】Java 继承
  • 自媒体账号数据分析从何入手?