菜单
个人主页
(当前)
写文章
浏览博文
    
搜索
登录
微信公众号
站点链接
半根蓝白个人主页
CSDN
Github
友情链接
摘繁华个人博客
博文目录
#custom-toc-container
测验7: 文件和数据格式化 (第7周)
BGLB0324
2020年7月18日 17:23
最后发布:2020年7月18日 17:23
首发:2020年7月18日 17:23
692
1
博文分类:
Python
博文标签:
测验
版权声明:本文为博主[BGLB0324]原创文章,遵循
CC 4.0 BY
版权协议,转载请附上原文出处链接和本声明。
本文链接:
http://blog.bglb.work/blog/blog-detail/21
版权
# 测验7: 文件和数据格式化 (第7周) ## 单项选择题 ### 1、Python对文件操作采用的统一步骤是: A、打开—操作—关闭 B、打开—读取—写入—关闭 C、打开—读写—写入 D、操作—读取—写入 **正确答案 A** 打开—操作—关闭 是一个统一步骤,其中,关闭可以省略。 ### 2、关于数据组织的维度,哪个选项的描述是错误的? A、高维数据由键值对类型的数据构成,采用对象方式组织 B、数据组织存在维度,字典类型用于表示一维和二维数据 C、一维数据采用线性方式组织,对应于数学中的数组和集合等概念 D、二维数据采用表格方式组织,对应于数学中的矩阵 **正确答案 B** 字典用于表示高维数据,一般不用来表示一二维数据。 ### 3、对于Python文件,以下描述正确的是: A、同一个文件可以既采用文本方式打开,也可以采用二进制方式打开 B、根据不同类型的文件,打开方式只能是文本或者二进制中的一种 C、当文件以二进制文件方式打开时,读取按照字符串方式 D、当文件以文本方式打开时,读取按照字节流方式 **正确答案 A** 文件就在那里,二进制或文本方式打开只是对其不同的程序理解。 ### 4、以下选项不是Python文件读操作的是: A、readlines() B、readline() C、readtext() D、read() **正确答案 C** 没有readtext()方法 ### 5、关于Python文件的‘+’打开模式,哪个选项的描述是正确的? A、只读模式 B、追加写模式 C、与r/w/a/x一同使用,在原功能基础上增加同时读写功能 D、覆盖写模式 **正确答案 C** '+'打开模式的精髓在于它能够同时赋予文件的读写权限。 ### 6、二维列表ls=[[1,2,3], [4,5,6],[7,8,9]],哪个选项能获取其中元素5? A、ls[-1][-1] B、ls[-2][-1] C、ls[4] D、ls[1][1] **正确答案 D** 这是二维切片的使用方式。 ### 7、给定列表ls = [1, 2, 3, "1", "2", "3"],其元素包含2种数据类型,哪个选项是列表ls的数据组织维度? A、一维数据 B、高维数据 C、二维数据 D、多维数据 **正确答案 A** 列表元素如果都是列表,其可能表示二维数据,例如:[[1,2], [3,4], [5,6]]。 如果列表元素不都是的将列表,则它表示一维数据。 ### 8、关于文件关闭的close()方法,哪个选项的描述是正确的? A、文件处理后可以不用close()方法关闭文件,程序退出时会默认关闭 B、如果文件是只读方式打开,仅在这种情况下可以不用close()方法关闭文件 C、文件处理遵循严格的“打开-操作-关闭”模式 D、文件处理结束之后,一定要用close()方法关闭文件 **正确答案 A** 打开文件后采用close()关闭文件是一个好习惯。如果不调用close(),当前Python程序完全运行退出时,该文件引用被释放,即程序退出时,相当于调用了close()。 ### 9、以下选项对文件描述错误的是: A、文件是程序的集合和抽象 B、文件是数据的集合和抽象 C、文件是存储在辅助存储器上的数据序列 D、文件可以包含任何内容 **正确答案 A** 函数或类是程序的集合和抽象,文件不是。 ### 10、关于CSV文件的描述,哪个选项的描述是错误的? A、CSV文件通过多种编码表示字符 B、整个CSV文件是一个二维数据 C、CSV文件格式是一种通用的、相对简单的文件格式,应用于程序之间转移表格数据 D、CSV文件的每一行是一维数据,可以使用Python中的列表类型表示 **正确答案 A** 一般来说,CSV文件都是文本文件,由相同编码字符组成。 ### 文本的平均列数 打印输出附件文件的平均列数,计算方法如下: (1)有效行指包含至少一个字符的行,不计算空行; (2)每行的列数为其有效字符数; (3)平均列数为有效行的列数平均值,采用四舍五入方式取整数进位。 输入输出示例 仅给出输出格式示例,非正确答案。 输入 输出 示例 1 无 123 【我的答案】 ```python f= open('latex.log','r') i= 0 chars = 0 for line in f.readlines(): if not (len(line) == 1 and line[-1]=='\n') : i +=1 chars += len(line)-1 avg = round(chars/i,0) avg = int(avg) print(avg) ``` 【参考代码】 ```python f = open("latex.log") s, c = 0,0 for line in f: line = line.strip("\n") if line == "": continue s += len(line) c += 1 print(round(s/c)) # 请注意:for line in f获取的line包含每行最后的换行符(\n),所以,去掉该换行符进行统计。 ``` ### CSV格式清洗与转换 附件是一个CSV格式文件,提取数据进行如下格式转换: (1)按行进行倒序排列; (2)每行数据倒序排列; (3)使用分号(;)代替逗号(,)分割数据,无空格; 按照上述要求转换后将数据输出。 输入输出示例 以下是一个格式示例,不是最终结果。 输入 输出 1,2,3 4,5,6 7,8,9 9;8;7 6;5;4 3;2;1 【我的答案】 ```python f = open('data.csv','r') lines = f.readlines() lines.reverse() for line in lines: line = line.replace('\n','') line =line.replace(' ','') t = line.split(",") t.reverse() print(";".join(t)) ``` 【参考代码】 ```python f = open("data.csv") ls = f.readlines() ls = ls[::-1] lt = [] for item in ls: item = item.strip("\n") item = item.replace(" ","") lt = item.split(",") lt = lt[::-1] print(";".join(lt)) f.close() # 注意:使用strip()方法去掉每行最后的回车,使用replace()去掉每行元素两侧的空格。 ```
点赞
1
打赏
暂时没有评论
请
登录
后评论
暂时没有评论