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个元素降序排列
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小题生成随机数中,一开始随机数模块功能分不清区间包含关系,导致结果出错,而在输出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:
参考完标准答案后,试着去理解里面的每一处细节,虽然最后还有一些地方理解的不是很透彻,希望自己不断积累,学多了就能理解!