中国大学 MOOC 课程Python语言程序设计 (第11期)测试答案(6-10周)
测验6: 组合数据类型 (第6周)
点击选项选择正确答案,每题有且仅有一个正确答案
序列类型总体上可以看成一维向量,如果其元素都是序列,则可被当作二维向量。
运行如下代码:(其中d是一个预定义的字典)
d={"a":1, "b":2}type(d.values())
输出结果是:<class 'dict_values'>
d.values()返回的是dict_values类型,这个类型通常与for..in组合使用。
哪个选项是下面代码的输出结果?
d= {'a': 1, 'b': 2, 'b': '3'}print(d['b'])
{'b':2}
1
2
3
创建字典时,如果相同键对应不同值,字典采用最后(最新)一个"键值对"。
键是值的序号,也是字典中值的索引方式。
因此,x in d 中的x被当作d中的序号进行判断。
ls.append(x),如果x是一个列表,则该列表作为一个元素增加的ls中。
集合"交并差补"四种运算分别对应的运算符是:& | - ^
注意:s.index(x)返回第一次出现x的序号,并不返回全部序号。
集合类型和字典类型最外侧都用{}表示,不同在于,集合类型元素是普通元素,字典类型元素是键值对。
字典在程序设计中非常常用,因此,直接采用{}默认生成一个空字典。
Python内置数据类型中没有数组类型。
序列类型(元组、列表)中元素都可以是不同类型。
数字不同数之和
描述
获得用户输入的一个整数N,输出N中所出现不同数字的和。
例如:用户输入 123123123,其中所出现的不同数字为:1、2、3,这几个数字和为6。
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
a = input()
b = set(a)
result = 0
for i in b:
result += int(i)
print(result)
31588487669495
人名最多数统计
描述
编程模板中给出了一个字符串,其中包含了含有重复的人名,请直接输出出现最多的人名。
输入输出示例
这里是个示例,展示输出格式,不是结果。
输入 | 输出 | |
示例 1 | 无 |
|
s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖
杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙
金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍
鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰
阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰
乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王
忽必烈 慕容复 张三丰 赵敏 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正
李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复
逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣
洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复
黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄
张三丰 令狐冲 赵敏 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫
洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈
完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱
郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲
谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉
双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏
逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄 赵敏'''
count={}
s=s.split()
for i in s:
count[i]=count.get(i,0)+1
items=list(count.items())
items.sort(key=lambda x:x[1], reverse=True)
word,digit=items[0]
print(word)
测验7: 文件和数据格式化 (第7周)
点击选项选择正确答案,每题有且仅有一个正确答案
列表元素如果都是列表,其可能表示二维数据,例如:[[1,2], [3,4], [5,6]]。
如果列表元素不都是的将列表,则它表示一维数据。
一般来说,CSV文件都是文本文件,由相同编码字符组成。
函数或类是程序的集合和抽象,文件不是。
'+'打开模式的精髓在于它能够同时赋予文件的读写权限。
字典用于表示高维数据,一般不用来表示一二维数据。
打开—操作—关闭 是一个统一步骤,其中,关闭可以省略。
没有readtext()方法
打开文件后采用close()关闭文件是一个好习惯。如果不调用close(),当前Python程序完全运行退出时,该文件引用被释放,即程序退出时,相当于调用了close()。
文件就在那里,二进制或文本方式打开只是对其不同的程序理解。
这是二维切片的使用方式。
文本的平均列数
描述
打印输出附件文件的平均列数,计算方法如下:
(1)有效行指包含至少一个字符的行,不计算空行;
(2)每行的列数为其有效字符数;
(3)平均列数为有效行的列数平均值,采用四舍五入方式取整数进位。
输入输出示例
仅给出输出格式示例,非正确答案。
输入 | 输出 | |
示例 1 |
|
|
f=open("latex.log")
tot=0
line=0
for i in f:
i=i.strip("\n")
if(i==""):
continue
tot+=len(i)
line+=1
print(round(tot/line))
3300331588487722709
CSV格式清洗与转换
描述
附件是一个CSV格式文件,提取数据进行如下格式转换:
(1)按行进行倒序排列;
(2)每行数据倒序排列;
(3)使用分号(;)代替逗号(,)分割数据,无空格;
按照上述要求转换后将数据输出。
输入输出示例
以下是一个格式示例,不是最终结果。
输入 | 输出 | |
示例 1 |
|
|
f=open("data.csv")
line=f.readlines()
line.reverse()
for i in line:
i=i.replace('\n','')
i=i.replace(' ','')
a=i.split(",")
a.reverse()
print(";".join(a))
测验8: 程序设计方法学 (第8周)
点击选项选择正确答案,每题有且仅有一个正确答案
os库是Python重要的标准库之一,提供了几百个函数功能,覆盖与操作系统、文件操作等相关的众多功能。os库适合所有操作系统。
产品不仅需要功能,更需要更好的用户体验。往往,产品都需要综合考虑技术功能和人文设计,这源于产品的商业特性。即,商业竞争要求产品不能只关心技术功能,更要关心用户易用和喜好需求。
函数是自顶向下设计的关键元素,通过定义函数及其参数逐层开展程序设计。
请不要联系作者索要第三方库,这不是获取第三方库的合理模式。
一个提醒进度的进度条、一个永不抛出异常的程序、一个快速的响应、一个漂亮的图标、一个合适尺寸的界面等都是用户体验的组成部分。总的来说,用户体验是一切能够提升程序用户感受的组成。
计算思维是基于计算机的思维模式,计算机出现之前,由于没有快速计算装置,计算所反映的思维模式主要是数学思维,即通过公式来求解问题。当快速计算装置出现后,计算思维才真正形成。
计算生态以竞争发展、相互依存和迅速更迭为特点,在开源项目间不存在顶层设计,以类自然界"适者生存"的方式形成技术演进路径。
顾名思义:os.path.relpath(path) 是 relative path处理函数。
计算思维的本质是:抽象和自动化。
抽象一个运算过程,以能够按步骤描述为目标;并利用计算机运算的高速特性自动化执行。
除了os.system(),选项其他函数都不存在。
3300331588487768232
英文字符的鲁棒输入
描述
获得用户的任何可能输入,将其中的英文字符进行打印输出,程序不出现错误。
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
chars = set()
for i in range(26):
chars.add(chr(ord('a') + i))
chars.add(chr(ord('A') + i))
s = input()
for i in s:
if i in chars:
print(i, end='')
588487790237
数字的鲁棒输入
描述
获得用户输入的一个数字,可能是浮点数或复数,如果是整数仅接收十进制形式,且只能是数字。对输入数字进行平方运算,输出结果。
要求:
(1)无论用户输入何种内容,程序无错误;
(2)如果输入有误,请输出"输入有误"。
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
示例2 |
|
|
s = input()
try:
if complex(s) == complex(eval(s)):
print(eval(s)**2)
except:
print("输入有误")
测验9: Python计算生态纵览 (第9周)
点击选项选择正确答案,每题有且仅有一个正确答案
numpy是多维度数据处理第三方库。
wxPython是GUI第三方库。
Scrapy是网络爬虫库
redis-py是redis数据的Python访问接口。
Python-Goose是Web提取第三方库。
Pyramid是Web开发框架库。
Seaborn是数据可视化第三方库。
Vizard是虚拟现实第三方库。
pyovr是增强现实开发库。
aip是baidu的人工智能功能Python访问接口。
300331588487827187
系统基本信息获取
描述
获取系统的递归深度、当前执行文件路径、系统最大UNICODE编码值等3个信息,并打印输出。
输出格式如下:
RECLIMIT:<深度>, EXEPATH:<文件路径>, UNICODE:<最大编码值>
提示:请在sys标准库中寻找上述功能。
输入输出示例
这里仅是格式参考,非正确答案,请注意,输出中每个逗号(,)后面都有一个空格。
输入 | 输出 | |
示例 1 |
|
|
import sys
print("RECLIMIT:{}, EXEPATH:{}, UNICODE:{}".format(sys.getrecursionlimit(), sys.executable, sys.maxunicode))
2003300331588487839986
二维数据表格输出
描述
tabulate能够对二维数据进行表格输出,是Python优秀的第三方计算生态。
参考编程模板中给定的数据和代码,编写程序,能够输出如下风格效果的表格数据。
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
data = [ ["北京理工大学", "985", 2000], \
["清华大学", "985", 3000], \
["大连理工大学", "985", 4000], \
["深圳大学", "211", 2000], \
["沈阳大学", "省本", 2000], \
]
from tabulate import tabulate
print(tabulate(data, tablefmt='grid'))
期末测验: 课程水平综合测验 (第10周)
无空隙回声输出
描述
获得用户输入,去掉其中全部空格,将其他字符按收入顺序打印输出。
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
s=input()
s=s.replace(' ','')
print(s)
文件关键行数
描述
关键行指一个文件中包含的不重复行。关键行数指一个文件中包含的不重复行的数量。
统计附件文件中与关键行的数量。
输入输出示例
此处仅示例输出格式。
输入 | 输出 | |
示例 1 |
|
s=set()
num=0
f=open('latex.log','r')
lines=f.readlines()
for line in lines:
if(line not in s):
s.add(line)
num+=1
print('共{}关键行'.format(num))
字典翻转输出
描述
读入一个字典类型的字符串,反转其中键值对输出。
即,读入字典key:value模式,输出value:key模式。
输入格式
用户输入的字典格式的字符串,如果输入不正确,提示:输入错误。
输出格式
给定字典d,按照print(d)方式输出
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
s=input()
try:
s=eval(s)
dic=dict(zip(s.values(),s.keys()))
print(dic)
except:
print("输入错误")
80032003300331588487911994
《沉默的羔羊》之最多单词
描述
附件是《沉默的羔羊》中文版内容,请读入内容,分词后输出长度大于2且最多的单词。
如果存在多个单词出现频率一致,请输出按照Unicode排序后最大的单词。
输入格式
文件
输出格式
字符串
输入输出示例
仅提供一个输出示范样例。
输入 | 输出 | |
示例 1 |
|
|
import jieba
f=open('沉默的羔羊.txt','r',encoding='utf-8')
sp=f.read()
words=jieba.lcut(sp)
lis={}
for word in words:
if(len(word)>=2):
lis[word]=lis.get(word,0)+1
count=list(lis.items())
count.sort(key=lambda x:x[1],reverse=True)
print(count[0][0])