商务分析方法与工具(二):Python的趣味快捷-序列结构解决电影推荐

embedded/2024/9/25 10:38:21/

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊!

喜欢我的博客的话,记得点个红心❤️和小关小注哦!您的支持是我创作的动力!

目录

  • 商务分析方法与工具(二):Python的趣味快捷-序列结构解决电影推荐
    • 一、实验目的
      • 1.掌握Python中的列表和元组的使用方法
      • 2.掌握Python中的字典、集合以及其他常见数据结构的使用方法
    • 二 、实验准备
    • 三、实验内容
      • 1. 编写程序,生成包含1000个0—100之间的随机整数,并统计每个元素的出现次数(分别用集合和字典来进行次数的统计)
      • 2.编写程序,用户输入一个列表和两个整数作为下标,然后使用切片获取并输出列表中借阅介于两个下标之间的元素组成的子列表。例如,用户输入[1,2,3,4,5,6] 和2、5,程序输出[3,4,5,6]
      • 3.编写程序生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列
      • 4.成绩统计分析:有10名同学的python课程成绩分别为:94, 89, 96, 88, 92, 86, 69, 95, 78, 85,利用列表分析成绩,输出平均值、最高的3个成绩和最低的3个成绩
      • 5.设计一个字典,用户输入内容作为“键”,然后输出字典中对应的“值”,如果用户输入的“键”不在,则输出“你输入的键不存在”
      • 6.设计程序:假设已有若干用户名字及其喜欢的电影清单,现有某用户,已看过并喜欢一些电影,现在想找个新电影看看,又不知道看什么好。请推荐电影。(代码见教材)
    • 四、实验代码和过程
      • 1. 编写程序,生成包含1000个0—100之间的随机整数,并统计每个元素的出现次数(分别用集合和字典来进行次数的统计)
      • 2.编写程序,用户输入一个列表和两个整数作为下标,然后使用切片获取并输出列表中借阅介于两个下标之间的元素组成的子列表。例如,用户输入[1,2,3,4,5,6] 和2、5,程序输出[3,4,5,6]
      • 3.编写程序生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列
      • 4.成绩统计分析:有10名同学的python课程成绩分别为:94, 89, 96, 88, 92, 86, 69, 95, 78, 85,利用列表分析成绩,输出平均值、最高的3个成绩和最低的3个成绩
      • 5.设计一个字典,用户输入内容作为“键”,然后输出字典中对应的“值”,如果用户输入的“键”不在,则输出“你输入的键不存在”
      • 6.设计程序:假设已有若干用户名字及其喜欢的电影清单,现有某用户,已看过并喜欢一些电影,现在想找个新电影看看,又不知道看什么好。请推荐电影。(代码见教材)
    • 五、实验中的问题和体会
      • 问题1:
      • 体会1:
      • 问题2:
      • 体会2:
      • 问题3:
      • 体会3:
      • 问题4:
      • 体会4:
      • 问题5:
      • 体会5:
      • 问题6:
      • 体会6:

商务分析方法与工具(二):Python的趣味快捷-序列结构解决电影推荐

一、实验目的

1.掌握Python中的列表和元组的使用方法

2.掌握Python中的字典、集合以及其他常见数据结构的使用方法

二 、实验准备

练习教材第3章的程序代码(另存为WORD)

三、实验内容

1. 编写程序,生成包含1000个0—100之间的随机整数,并统计每个元素的出现次数(分别用集合和字典来进行次数的统计)

2.编写程序,用户输入一个列表和两个整数作为下标,然后使用切片获取并输出列表中借阅介于两个下标之间的元素组成的子列表。例如,用户输入[1,2,3,4,5,6] 和2、5,程序输出[3,4,5,6]

3.编写程序生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列

python94_89_96_88_92_86_69_95_78_8533_17">4.成绩统计分析:有10名同学的python课程成绩分别为:94, 89, 96, 88, 92, 86, 69, 95, 78, 85,利用列表分析成绩,输出平均值、最高的3个成绩和最低的3个成绩

5.设计一个字典,用户输入内容作为“键”,然后输出字典中对应的“值”,如果用户输入的“键”不在,则输出“你输入的键不存在”

6.设计程序:假设已有若干用户名字及其喜欢的电影清单,现有某用户,已看过并喜欢一些电影,现在想找个新电影看看,又不知道看什么好。请推荐电影。(代码见教材)

四、实验代码和过程

1. 编写程序,生成包含1000个0—100之间的随机整数,并统计每个元素的出现次数(分别用集合和字典来进行次数的统计)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.编写程序,用户输入一个列表和两个整数作为下标,然后使用切片获取并输出列表中借阅介于两个下标之间的元素组成的子列表。例如,用户输入[1,2,3,4,5,6] 和2、5,程序输出[3,4,5,6]

在这里插入图片描述
在这里插入图片描述

3.编写程序生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列

在这里插入图片描述
在这里插入图片描述

python94_89_96_88_92_86_69_95_78_8533_41">4.成绩统计分析:有10名同学的python课程成绩分别为:94, 89, 96, 88, 92, 86, 69, 95, 78, 85,利用列表分析成绩,输出平均值、最高的3个成绩和最低的3个成绩

在这里插入图片描述
在这里插入图片描述

5.设计一个字典,用户输入内容作为“键”,然后输出字典中对应的“值”,如果用户输入的“键”不在,则输出“你输入的键不存在”

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

6.设计程序:假设已有若干用户名字及其喜欢的电影清单,现有某用户,已看过并喜欢一些电影,现在想找个新电影看看,又不知道看什么好。请推荐电影。(代码见教材)

在这里插入图片描述在这里插入图片描述

五、实验中的问题和体会

问题1:

在第1小题生成随机数中,一开始随机数模块功能分不清区间包含关系,导致结果出错,而在输出101行结果后才发现结果显示不够清晰,乱序排版影响美观,而在有序集合转换与无序字典转换时有点疑惑。

体会1:

深入学习random.randint(a,b)的用法,在结果输出时用end=‘\t’对结果进行美化排版,在集合法强制转换set()时,发现转换为的set()默认升序,因而在字典法中先给列表进行升序,效果显著。

问题2:

在第2小题进行切片操作过程中,由于知识储备不足,对于切片的使用显得有些陌生,导致切片临界值取舍不定情况。

体会2:

在查阅相关资料后,对于切片区间有了更进一步的理解,为了追求程序的互动性与趣味性,列表的输入和需求的实现都注重互动性。

问题3:

在第3小题中一开始以为将原序列深复制copy.deepcopy()两份,第一份用for循环取出前十个数进行升序操作,第二份用for循环取出后十个数进行降序操作,再将两份合并,但得到的答案有点繁杂。

体会3:

学完切片后,发现切片操作可以简化很多繁杂步骤,省去了开辟内存空间复制其他数组进行操作,也节省了时间复杂度和空间复杂度。

问题4:

在第4小题的求成绩平均分中,刚开始是采取总分除以人数的方式,但发现过程显得繁杂,尤其是for循环求和。

体会4:

在认真查找有关numpy库的内置函数numpy.mean()平均值函数后,才发现问题变得很简单,顺便也学会了求中位数的numpy.median()函数用法,而在最大三位和最小三位则采取先排序再取值的办法。

问题5:

在第5小题创建字典时采用互动性方法让用户自己输入自己创建字典的方法,但是在创建字典过程中发现双重for循环,一层是键,一层是值会导致值更新的失误。

体会5:

仔细回顾上节课学到的内建函数zip(a,b)进行键值匹配创建字典,达到了理想效果,而在查询键是否存在时采用if 语句+in的方法,最终完美解决此题。

问题6:

在第六小题上,由于题目原理理解不深,导致无从下手,花了很多时间试写出来的代码很粗糙。

体会6:

参考完标准答案后,试着去理解里面的每一处细节,虽然最后还有一些地方理解的不是很透彻,希望自己不断积累,学多了就能理解!


http://www.ppmy.cn/embedded/33270.html

相关文章

4.Spring Security重要接口

当什么都没有配置的时候,账号和密码是由spring security自定义生成的。在实际项目中账号和密码都是从数据库中查询出来的。所以要通过自定义逻辑控制认证逻辑。 UserDetailService 接口 1.创建类继承UsernamePasswordAuthenticationFilter,重写三个方法&#xff1…

ubuntu20文件安装和卸载cuda11.6

搜索cuda 11.6 nvidia,进入官网https://developer.nvidia.com/cuda-11-6-0-download-archive 选择linux --> runfile 用安装包安装 wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run sudo s…

C语言--函数递归与迭代

递归在书写的时候,有两个必要条件: 1.递归存在限制条件,但凡满足这个限制条件时,递归便不再继续 2.每次递归调用之后越来越接近这个限制条件 递归的思想: 把大事化小事 递归其实就是函数自己调用自己 //int main…

第五篇:通信脉络:探索计算机外设与总线体系的精髓

通信脉络:探索计算机外设与总线体系的精髓 1 引言 在这个技术日新月异的时代,理解计算机系统的基本构成要素 —— 总线和外设 —— 对于每个从事技术工作的人来说都是至关重要的。这些组件不仅是计算机通信的基石,也直接影响着系统的性能、效…

大数据开发——PostgreSQL

一、概念 PostgreSQL是一个强大的开源对象关系型数据库管理系统(ORDBMS),它是由PostgreSQL全球开发团队开发的。它在功能上与其他商业数据库系统相媲美,如Oracle、MySQL等。PostgreSQL采用了许多先进的数据库技术,包括…

每日OJ题_贪心算法二⑦_力扣942. 增减字符串匹配

目录 力扣942. 增减字符串匹配 解析代码 力扣942. 增减字符串匹配 942. 增减字符串匹配 难度 简单 由范围 [0,n] 内所有整数组成的 n 1 个整数的排列序列可以表示为长度为 n 的字符串 s &#xff0c;其中: 如果 perm[i] < perm[i 1] &#xff0c;那么 s[i] I 如果 …

噪声嵌入提升语言模型微调性能

在自然语言处理&#xff08;NLP&#xff09;的快速发展中&#xff0c;大模型&#xff08;LLMs&#xff09;的微调技术一直是研究的热点。最近&#xff0c;一篇名为《NEFTUNE: NOISY EMBEDDINGS IMPROVE INSTRUCTION FINETUNING》的论文提出了一种新颖的方法&#xff0c;通过在训…

集合的基本操作

集合&#xff1a; 在java当中&#xff0c;含有着一些不同的存储数据的相关集合。分为单列集合&#xff08;Collection&#xff09;和双列集合(Map)。 Collection 首先学习Collection来进行展示&#xff1a; 以框框为例子&#xff0c;蓝色的代表的是接口&#xff0c;而红色的…