20224126《Python程序设计入门》实验四报告

phobia_ 2023-05-26 20:22:20

20224126 《Python程序设计入门》实验四报告
课程:《Python程序设计入门》
班级: 2241
姓名: LT
学号:20224126
实验教师:WZQ
实验日期:2023年5月26日
必修/选修: 专选课

一、实验内容
具体内容:Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。课代表和各小组负责人收集作业(源代码、视频、综合实践报告)
注意事项:在Windows/Linux系统上使用VIM、PDB、IDLE、Pycharm等工具编程实现。
评分标准:
(1)程序能运行,功能丰富。(需求提交源代码,并建议录制程序运行的视频)10分
(2)综合实践报告,要体现实验分析、设计、实现过程、结果等信息,格式规范,逻辑清晰,结构合理。20分。
(3)实验4的遇到的问题以及感想体会。5分。
(4)对全课进行总结,并写课程感想体会、意见和建议等。10分。

二、实验过程及结果
1.确定实验内容
在选题时,我将自己的喜好与实验要求相结合。由于我本人喜欢欧美音乐,平时需要经常追踪Billboard榜单数据,而在浏览器里登录Billboard官网等待时间过长给我带来了很多困扰,于是我最终确定尝试利用Python爬Billboard官网获取榜单信息。
2.编写代码:
(1)代码展示

import billboard

chart=billboard.ChartData(name='hot-100',date='2023-05-23',year=None) #默认爬取特定日期的周榜

while True:
 number = int(input("请输入要查询的排名-1,【例:冠军单曲为0,第二名为1】"))
 song = chart[number]  # ChartData返回对象长度根据榜单而变化,如周榜长度为100,索引从0开始

 title=song.title        #title属性,即歌名
 print(title)

 rank=song.rank          #rank属性,即歌曲当前排位
 print(rank)

 artist=song.artist      #artist属性,即歌手
 print(artist)

 peakPos=song.peakPos    #peakPos属性,即历史最高排位
 print(peakPos)

 lastPos=song.lastPos    #lastPos属性,即上周排位
 print(lastPos)

 weeks=song.weeks        #weeks属性,即在榜周数
 print(weeks)

 isNew=song.isNew        #isNew属性,即是否为新上榜歌曲,如果不是则返回False
 print(isNew)

 if 0 == int(input("是否继续查询?1继续,0结束")):
  break

chart = billboard.ChartData('hot-100-songs', year=2020)
print(chart)

chart = billboard.ChartData('hot-100-songs', year=2021)
print(chart)

chart = billboard.ChartData('hot-100-songs', year=2022)
print(chart)

(2)代码详解
①准备工作:我先提前从互联网上查询了billboard的爬虫代码并在本机上进行了敲写,随后在pycharm上导入了billboard模块。

img

②构造函数ChartData
由于我设计的查询系统包括本周周榜数据查询+2020、2021、2022三年年榜数据查询,所以除了要向函数传递date、year两个参数,还要传递name参数(确定要查询的是周榜还是年榜)。

img

③周榜部分:设计循环
周榜数据部分我设计了通过输入单曲对应数字查询单曲成绩的系统,能够查询到单曲的歌名、本周排位、歌手、最高排位、上周排位和在榜周数(若是本周新进榜的单曲还会显示“True”,非本周入榜的新单曲会显示“False”),如果还要继续查询的话输入数字1就可以查询其他单曲的数据,想要看年榜数据就直接输入0.

img

④年榜部分:
设计代码直接显示三年的年榜数据

img

(3)具体运行效果


三、实验中遇到的问题及解决过程
①问题1:一开始编写代码时发现周榜只能够查询一次,想要查询其他单曲还要再重新运行一次程序。
问题1解决方案:利用之前在实验二中学习过的while循环,使得周榜数据可以反复查询。

②问题2:代码编写过程中出现的各种报错
问题2解决方案:在互联网上查询了对应报错的原因以及解决方法。具体问题包括以下四个:
outside loop:if没有置于while循环中使用
expected an intended block:没有合适的空格,需要往后再空一格
Perhaps you forgot a comma?:忘记加逗号
missing 1 required positional argument: 在下一行前需要多空一格

四、感悟思考
课程总结与感悟:
①对Python的应用能力得到了明显提高。在选择本课前,本人从未接触过编程,而现在已经可以自己参考相关资料设计出能够解决自己实际问题的简单程序了,感触颇深。每次认认真真完成的实验都极大地加深了我对Python这个编程小宝藏的了解与应用程度,我也掌握了部分常用语句的编写。
②锻炼了自己的耐心。要认真完成Python作业,就需要自己一行代码一行代码的输入并检查,并不是简单复制粘贴就可以的。在实验过程中遇到了很多困难,比如反复出现的同一报错但自己又找不到问题在哪里,虽然有抱怨之情,但在认真查询了很多资料并自己反复修改后终于还是找到了自己错误的原因。我也意识到了挫折是难免的,要有耐心、有毅力,最后才能出色地完成任务。(在看到自己编写了很久的程序正常运行时,也有种看着孩子平安出生的老父亲的感觉)
③英语水平得到了提高。很多报错由于本人英语水平不够而看不太懂,在查询报错原因时也积累了不少单词;包括老师设置的单词打卡加分,也让我尽量坚持做到了每天背词,算是本课学习的意外之喜?
④认识了可爱的老师,很有耐心也很温柔,课堂氛围特别好,每次上Python课前都是充满期待、充满干劲的。
⑤意识到了合作的重要性。遇到很多问题都是周围同学帮我改正的,在互帮互助中双方都得到了成长。

建议:老师请务必延续自己的讲课风格,特别亲切,同学们也都特别喜欢~ 就是以后上课时可以讲的稍微慢点,有的地方我们还没听懂老师就过去啦。
很开心自己选修了王老师的Python,很感激与老师的相遇,也慢慢发现了Python的魅力所在!祝老师天天开心~

...全文
230 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:LTK8319是一款单通道H桥有刷直流电机驱动器,工作电压范围为2.5V至12V,支持最高3.9A的峰值电流和2.5A的平均电流驱动能力,适用于小家电、玩具、电子锁、机器人等小型电动设备。该芯片通过两个逻辑输入(INA和INB)控制电机的正转、反转、停止与刹车,并支持PWM调速控制。集成欠压锁定(UVLO)、过温保护(TSD)及自动故障恢复功能,确保系统安全可靠运行。当INA和INB持续为低电平时,芯片进入低功耗休眠模式,显著降低静态功耗。采用ESOP-8封装,符合环保无铅标准。; 适合人群:电子工程师、嵌入式系统开发者、电机控制技术人员,以及从事小型机电产品研发的设计人员;具备基本电路知识和电机控制经验者更佳。; 使用场景及目标:①用于驱动小型有刷直流电机或步进电机的一个绕组,实现精确的方向与速度控制;②适用于电池供电设备中对功耗敏感的应用,利用休眠模式延长续航时间;③在电机启停频繁、负载波动大的场合,发挥其电流控制与保护机制优势,提升系统稳定性。; 阅读建议:此文档提供了详细的电气特性、功能逻辑表、保护机制与时序参数,建议结合典型应用电路进行硬件设计,并重点关注电源去耦电容选型、散热布局及PWM频率设置(不超过100kHz),以确保系统可靠运行。
内容概要:本文研究了一种基于遗传算法(GA)与粒子群优化算法(PSO)融合的无人机三维路径规划方法,旨在解决复杂环境中无人机避障与路径优化的问题。通过构建三维空间环境模型,提出一种结合GA全局搜索能力强与PSO收敛速度快优势的混合优化策略,并利用Matlab平台完成算法仿真与路径可视化。研究不仅实现了无人机在存在多个障碍物场景下的安全、高效飞行路径规划,还对GA与PSO两种算法在路径长度、计算耗时、收敛稳定性等方面进行了对比分析,评估其性能差异,为实际应用中算法选型提供依据。; 适合人群:具备一定算法设计基础和Matlab编程能力的科研人员、自动化与人工智能方向的研究生,以及从事无人机导航、智能控制等相关领域的工程技术人员。; 使用场景及目标:①应用于城市密集建筑区、山地森林等复杂地形中的无人机自主巡检与应急救援任务;②为智能交通、地理测绘、灾害监测等需要自主路径决策的无人系统提供算法支持与仿真验证;③通过对比不同智能优化算法的表现,辅助研究人员在特定应用场景下选择最优路径规划方案。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实验,调整种群规模、迭代次数、障碍物分布等参数,深入理解算法运行机制与性能表现,并可进一步拓展至动态环境更新、多无人机协同避障等更复杂的研究方向。

42

社区成员

发帖
与我相关
我的任务
社区描述
技术交流
教育电商 高校
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧