2021 Python 程序设计(哈尔滨工业大学) 最新满分章节测试答案
- 【作业】项目(三选一) 可选项目1:文本情感分析
- 第二周:数据类型、运算符与表达式、变量赋值与简单I-O操作 第二周测验
- 【作业】项目(三选一) 可选项目2:贪吃蛇
- 第一周:程序设计的基础知识 第一周测验
- 【作业】项目(三选一) 可选项目3:基于Web的学生成绩管理系统
- 第五周:字符串 第五周测验
- 第六周:列表与元组 第六周测验
- 【作业】第五周:字符串 第五周作业
- 【作业】第二周:数据类型、运算符与表达式、变量赋值与简单I-O操作 第二周作业
- 【作业】第六周:列表与元组 第六周作业
- 第七周:字典与集合 第七周测验
- 第三周:程序控制结构 第三周测验
- 第四周:函数与递归函数 第四周测验
- 【作业】LeetCode编程练习 LeetCode完成情况截图上传
- 【作业】第七周:字典与集合 第七周作业
- 【作业】第一周:程序设计的基础知识 第一周作业
- 【作业】第三周:程序控制结构 第三周作业
- 【作业】第四周:函数与递归函数 第四周作业
本答案对应课程为:点我自动跳转查看
本课程起止时间为:2021-07-13到2021-08-31
本篇答案更新状态:已完结
【作业】项目(三选一) 可选项目1:文本情感分析
1、 问题:问题描述 近年来,越来越多的用户愿意在各种网络平台上分享自己对于某些事物的看法,这些个人观点通常都带有一定的感情色彩,这种感情色彩通常代表着该用于对于该事物的褒贬程度。这里我们以电影评价为例,如果一个用户在电影评论网站对某个电影做出积极(positive)的评价,那么代表着这个用户对该电影的认可,反之则代表一种否认。而通过分析这种情感色彩,我们可以很容易地知道一部电影的精彩程度或其在大众心中的口碑。 在本问题中,我们选取了英文影评10000句,其中积极评价与消极评价各5000句。希望同学通过这10000句语料,利用机器学习算法(可以不限于下文中提到的算法),得到一个能够较为准确地判断一句英文影评是积极的还是消极的模型。输入 若干行,每行一句未在给出的10000句话里出现过的句子输出 与输入相同的行数,每行一个整数。第i行的整数为1代表输入的第i句话为积极的情感色彩,-1表示其为消极的情感色彩,其余输出非法。实验评价 实验评价由两方面组成,第一方面为你最后提交的程序通过测试得到的准确性。第二方面为代码实现情况。数据集描述 数据集内一共有三个文件,分别为rt-polarity.neg, rt-polarity.pos, rt-polarity.test。所有影评中的标点均可直接被看做一个单词(即标点与单词之间,单词与单词,标点与标点之间都用空格隔开)。其中rt-polarity.neg, rt-polarity.pos各有5000句影评rt-polarity.neg保存的为负面评价的影评,rt-polarity.pos为正面评价的影评。rt-polarity.test中保存了若干句没有分析正负面评价的影评,需要你对这若干句影评进行正负面评价的分析。作业提交 作业提交为多个文件的压缩包,其中需要包含的文件有:源代码,针对rt-polarity.test分析正负面评价的输出结果(输出文件文件名:rt-polarity.output)。 压缩包命名为:学号-姓名-项目1.zip。附录——机器学习相关介绍 请注意,我们希望同学们利用更加先进的机器学习算法,这里的候选算法只是为对这个领域不太了解的同学提供一个导向性的帮助。 在完成某些复杂算法时,同学们可以合理地利用一些Python库完成功能,但是需要事先与助教沟通。 K临近算法及其在情感极性分析中的运用简介 对于情感极性分析,我们首先需要找到一种将一句话转化为一种可计算的实体的方法。最为简单的方法如下所述: 假设所有的话的不同词语加起来总共只有n个,那我们可以将一句话转化为一个n维的向量。第i位表达的信息是这个第i位代表的词在整句话中出现的比例。 假设词语一共有“I”、“am” 、“is”、“have”、“an” 、“a” 、“dream”、“.”(注意“.”也被看做了一个词语)那么我们可以认为所有利用这些词语造出来的句子都可以被表达为一个8维的向量,其中第一维表示“I”在句子中出现的比例、第二维表示“am”在句子中出现的比例,……依次类推。 比如句子“I have a dream .”其转化后的8维向量为: 通过这样的转化,我们就将一句话转化为了一个高维向量。对于语料中的m句话,我们均可以通过这样的转化将其转化为m个向量。 接下来考虑新给出一句话,如何判断其极性。同样地,首先将给出的这句话转化为一个向量,接下来我们可以直接衡量出这个向量与原先给出的m个向量之间的直线距离。我们取所有距离中前K小的向量(K为一个预设定的参数),统计这K个向量中是占多数的是积极的向量还是消极的向量,然后直接认为给定的话的极性为占多数的极性改进 我们注意到,由上文构造出来的向量受到了一些出现频率较高的,但是没有实际表达情感意义的词语影响,如、“I”、“am” 、“is”等。这导致计算向量距离时,很大一部分距离被用在计算这样无意义的词语上。对此,我们可以为每一个词语新增一个权重,表示这个词语的重要性。这个方法叫做“逆文本频率指数”(IDF)。 假设这个词语为w,一共在句话中出现,那么我们认为越大,应给w赋予的权重越小。具体的,w的权重为。其中D表示一共有多少句话。 这样的权重表达了我们更加看重一些出现频率较小的词语而不是出现频率较大且无意义的词语。 最后,我们可以把初始的方法得到的向量每一位依次乘以每个词语的权重,得到每句话最终的表示向量。 如何自己评价自己的模型 大家在对自己的数据进行处理时,可以将整体的数据划分为3个部分,分别叫做训练集、开发集、和测试集。 训练集为对模型进行训练的数据集合,在K临近算法中为预先输入给程序的m句已知极性的话。 使用训练集进行计算得到模型后,依次将开发集的数据输入模型,可以得到一个准确率。这个时候利用这个准确率,调节超参数。在K临近中,则是调节K的大小。 最后模型的性能可以利用从未使用过的测试集依次输入模型,得到准确率。这时这个准确率是对模型一个较好的评价。
评分规则: 【 无
】
第二周:数据类型、运算符与表达式、变量赋值与简单I-O操作 第二周测验
1、 问题:执行下列语句,输出的结果是?x = 7.0
y = 5
print x % y
选项:
A:2.0
B:2
C:程序出错
D:1
E:1.0
答案: 【2.0】
2、 问题:能实现下面功能的程序是?接收用户输入的一个整数。如果输入的是偶数,则输出“True”,否则输出“False”。
选项:
A:print not bool(int(raw_input()) % 2)
B:print int(raw_input()) % 2 == 0
C:print int(raw_input()) % 2 != 0
D:print bool(int(raw_input()) % 2)
E:print not bool(raw_input() % 2)
F:print int(raw_input()) % 2 == 1
答案: 【print not bool(int(raw_input()) % 2);
print int(raw_input()) % 2 == 0】
3、 问题:对于一元二次方程
答案: 【-3.58 -0.42】
4、 问题:假设你每年初往银行账户中1000元钱,银行的年利率为4.7%。一年后,你的账户余额为:1000 * ( 1 + 0.047) = 1047 元第二年初你又存入1000元,则两年后账户余额为:(1047 + 1000) * ( 1 + 0.047) = 2143.209 元以此类推,第10年年末,你的账户上有多少余额?注:结果保留2位小数(四舍五入)。
答案: 【12986.11】
5、 问题:Python提供了众多的模块。你能找到一个合适的模块,输出今天的日期吗?格式为“yyyy-mm-dd”。可以查找任何搜索引擎和参考资料,并在下面的空白处写出相应的模块名。
答案: 【(以下答案任选其一都对)datetime;
time;
calendar】
【作业】项目(三选一) 可选项目2:贪吃蛇
1、 问题:补全附件中的程序,完成贪吃蛇游戏,并将程序打包提交。压缩包命名为:学号-姓名-项目2.zip
评分规则: 【 无
】
第一周:程序设计的基础知识 第一周测验
1、 问题:0
0
1
3
23
Stanford
1
1
25
14.0Normal
0
false
false
false
EN-US
JA
X-NONE计算机为什么采用二进制,而非十进制作为数制的基础?
选项:
A:因为二进制数更容易被硬件存储和计算
B:因为二进制比十进制表示能力更强
C:因为二进制比十进制计算速度快
D:因为二进制数精度更高
答案: 【因为二进制数更容易被硬件存储和计算】
2、 问题:0
0
1
3
21
Stanford
1
1
23
14.0Normal
0
false
false
false
EN-US
JA
X-NONEPython语言为什么被称为高级程序设计语言?
选项:
A:因为它比低级语言更抽象
B:因为它比低级语言功能强大
C:因为它比低级语言更复杂
D:因为它是解释型语言
E:因为它是编译型语言
答案: 【因为它比低级语言更抽象】
3、 问题:0
0
1
3
22
Stanford
1
1
24
14.0Normal
0
false
false
false
EN-US
JA
X-NONE关于Python语言的执行过程,描述正确的是?
选项:
A:由解释器一条语句一条语句地执行
B:由编译器将源程序转化为机器语言,然后执行
C:执行过的语句将不会再被执行
D:可以同时执行多条语句
答案: 【由解释器一条语句一条语句地执行】
4、 问题:下列Python程序,没有错误的是?
选项:
A:print ‘Hello, I’m Tom.’
B:Print ‘Hello, World!’
C:print ‘Hello, this’s Tom.’
D:print ‘Hello, ‘ print ‘World!’
答案: 【print ‘Hello, I’m Tom.’】
5、 问题:在Spyder IDE中编写Python程序,输出“Hello World”,要求将这两个单词分两行输出,以下哪个程序不正确?
选项:
A:print ‘Hello
World’
B:print "HelloWorld"
C:print ‘Hello’
print ‘World’
D:print ‘HelloWorld’
答案: 【print ‘Hello
World’】
【作业】项目(三选一) 可选项目3:基于Web的学生成绩管理系统
1、 问题:一. 项目目的掌握列表、集合和字典等数据结构的使用掌握SQLite数据库操作和简单SQL语句掌握Web编程 二. 项目要求 1. 在SQLite数据库中创建学生成绩表student,包括考号,姓名,语文,数学,英语,物理,化学,总成绩字段。 2. 编写Web程序用户可以输入以上信息并向数据表中添加一条记录。 3. 可以按总成绩或单科(语文,数学,英语,物理,化学)查询学生成绩并按降序在网页中显示查询结果。 4. 可以按分数段(例如查询所有成绩大于等于60)查询并按降序网页中显示查询结果。 5.可以按考号或者姓名查询单个学生的成绩网页中显示查询结果。 6.可以删除或者修改某个学生记录。压缩包命名为:学号-姓名-项目3.zip
评分规则: 【 无
】
第五周:字符串 第五周测验
1、 问题:字符串s长度为奇数,则显示中间字符的表达式为?
选项:
A:s[len(s)/2]
B:s[(len(s) – 1)/2]
C:s[len(s)/2 + 1]
D:s[len(s)/2 – 1]
E:s[(len(s) + 1)/2]
答案: 【s[len(s)/2];
s[(len(s) – 1)/2]】
2、 问题:若 s = ‘What is your name’, 则 s[11:2:-2] 的结果为?
答案: 【(以下答案任选其一都对)’ro it’;
ro it;
“ro it”】
3、 问题:下载并遍历 names.txt 文件,输出长度最长的回文人名。
答案: 【TREFFERT】
4、 问题:当输入为 ‘hello’时,写出下列程序的输出结果:s = raw_input()
y = 0
for i in s:
y += 1
print y, i
答案: 【1 h
2 e
3 l
4 l
5 o】
5、 问题:当输入为 ‘cbabc’ 时,下列程序的输出结果为?s1 = raw_input()
index = 0
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦