文件字符分布

问题描述:
统计附件文件的小写字母a-z的字符分布,即出现a-z字符的数量,并输出结果。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
同时请输出文件一共包含的字符数量。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
注意输出格式,各元素之间用英文逗号(,)分隔。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
答案可能包含a-z共26个字符的分布,如果某个字符没有出现,则不显示,输出顺序a-z顺序。

自己写的程序:

txt = open("latex.log","r",encoding='utf-8').read()
counts={}
s=0
for letter in txt:if 97 <= ord(letter) <= 122:counts[letter] = counts.get(letter,0)+1s+=1
items = list(counts.items())
items.sort(key=lambda x:x[0], reverse=False)
str1 = ""
for i in range(len(items)):str1+=str(items[i][0])+":"+str(items[i][1])+","
str1=str1.strip(",")
print("共{0}字符,{1}".format(s,str1))

参考别人写的优化过:

txt = open("latex.log","r",encoding='utf-8').read()
counts={}
s=0
for letter in txt:if 97 <= ord(letter) <= 122:counts[letter] = counts.get(letter,0)+1s+=1
print("共{}字符".format(s),end="")                     #end=""不换行输出
items = list(counts.items())
items.sort(key=lambda x:x[0], reverse=False)
for i in range(len(items)):word ,count = items[i]print(",{}:{}".format(word,count),end="")

注: print后加end""就可以不换行输出

CSV格式列变换

问题描述:
附件是一个CSV文件,请将每行按照列逆序排列后输出,不改变各元素格式(如周围空格布局等)。

正确程序

fo = open("data.csv")
for line in fo:line = line.replace("\n","")line = line.split(",")a=line[::-1]          #或者用a.reverse()方法print(",".join(a))

注:

type(fo)
<class '_io.TextIOWrapper'>type(第一行line)      # line = line.replace("\n","")
<class 'str'>type(第二行line)      #line = line.split(",")
<class 'list'>type(a)
<class 'list'>

文本的平均数

问题描述:
打印输出附件文件的平均列数,计算方法如下:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬
(1)有效行指包含至少一个字符的行,不计算空行;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬
(2)每行的列数为其有效字符数;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬
(3)平均列数为有效行的列数平均值,采用四舍五入方式取整数进位。

正确程序:

f = open("latex.log")
s, c = 0, 0
for line in f:line = line.strip("\n")if line == "":continues += len(line)c += 1
print(round(s/c))

注:每一行中都有换行字符“\n”,先去掉换行字符再判断是否为空行。

CSV格式清洗与转换

问题描述:
附件是一个CSV格式文件,提取数据进行如下格式转换:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬
(1)按行进行倒序排列;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬
(2)每行数据倒序排列;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬
(3)使用分号(;)代替逗号(,)分割数据,无空格;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

正确程序:

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.python中从csv格式的文件中读入数据为什么要去掉换行?replace("\n","")
2.文件打开方式“+”的同时读写功能指的什么?

相关文章参考链接:https://blog.csdn.net/weixin_43108122/article/details/98338993
https://blog.csdn.net/ybxnp/article/details/107830407

国家精品在线开放课程“Python语言程序设计”(北理工-嵩天)-第七周文件和数据格式化 练习题相关推荐

  1. 国家精品在线开放课程“Python语言程序设计”(北理工-嵩天)-第四周测试题 程序的控制结构

    python语言程序设计 第四周测试 程序的控制结构 1‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬ ...

  2. 国家精品在线开放课程“Python语言程序设计”(北理工-嵩天)-第六周组合数据类型 问题总结

    1.增加列表元素的两个方法对比 ls += lt #更新列表ls,将列表lt元素增加到列表ls中 ls.append(x) #在列表ls最后增加一个元素x "+="与"a ...

  3. 【学习笔记】Python语言程序设计 北理工-嵩天

    本文为Python语言程序设计相关内容,希望对你有所帮助.正在更新中- 1.基本数据类型 1.1数据类型及操作 整数类型 浮点数类型 复数类型 数值运算操作符 数值运算函数 小结 1.2实例:天天向上 ...

  4. (转载)[python学习笔记]Python语言程序设计(北理工 嵩天)

    作者:九命猫幺 博客出处:http://www.cnblogs.com/yongestcat/ 欢迎转载,转载请标明出处. 如果你觉得本文还不错,对你的学习带来了些许帮助,请帮忙点击右下角的推荐 阅读 ...

  5. 【学习笔记】PYTHON语言程序设计(北理工 嵩天)

    1 Python基本语法元素 1.1 程序设计基本方法 计算机发展历史上最重要的预测法则     摩尔定律:单位面积集成电路上可容纳晶体管数量约2年翻倍 cpu/gpu.内存.硬盘.电子产品价格等都遵 ...

  6. 教育部推出首批490门“国家精品在线开放课程”

    欢迎关注天下博客:http://blog.genesino.com/2018/01/jingpinke/ 教育部从众多国内外慕课通过筛选评比,推出490门国家精品在线开放课程. 课程内容涉及本科教育的 ...

  7. 资源 :数据科学类国家精品在线开放课程

    前言 2019年1月22日,教育部办公厅公布了第二批国家精品在线开放课程认定结果.本文为您盘点数据科学与大数据专业领域的国家精品在线开放课程,包括2017年第一批认定课程(注:排名不分先后). 1大数 ...

  8. 国家精品在线开放课程_开放的互联网安全课程

    国家精品在线开放课程 应向高中学生提供哪些有关互联网安全的知识? 传统的高中课程遵循了美国儿童互联网保护法 (CIPA)的指导. 由2000年由国会制定并于2011年更新的学生互联网安全培训是美国学校 ...

  9. 请详细说明如何基于国家精品在线开放课程遴选标准制作一门慕课

    答:首先,根据国家精品在线开放课程遴选标准,选择要制作慕课的主题和课程内容:其次,准备慕课的课程资源:再次,根据课程内容,确定慕课的学习目标和学习任务:最后,开发慕课的网络课件,并提供良好的学习环境和 ...

最新文章

  1. 编译器设计-符号表-中间代码生成
  2. c语言中将数组设为空,求助~~ 如何把数组变成动态输入的?
  3. 300英雄服务器维护多久,300英雄7月19日停机更新公告
  4. 用神经网络分类原子和圆
  5. python链接hbase模块_HBase实战(1):使用Python连接Hbase数据库
  6. linux系统将python升级到2.7.10版本
  7. 数据库杂谈(八)——查询优化
  8. C# Winform 窗体美化(二、LayeredSkin 界面库)
  9. Nginx基础和原理介绍
  10. ASP.NET WebAPI导入EXCEL数据
  11. Halcon标定系列(3):我个人总结的“眼在手外“和“眼在手上”的心得笔记
  12. 不定积分/定积分——三角函数n次方不定积分公式(包含sec^nx与csc^nx不定积分公式)
  13. HTML实现页面跳转
  14. 向量叉乘的线性性质 几何解释
  15. Faster R-CNN论文翻译——中英文对照
  16. Holt_Winters三次平滑指数实现
  17. 发展心理学类毕业论文文献包含哪些?
  18. 2021年ABAQUS仿真技术竞赛获奖作品集来啦
  19. Unity3D-打飞碟小游戏
  20. 音量控制按钮有小红叉插头已从插孔拔出

热门文章

  1. CGI与FASTCGI区别
  2. 3G时代五大手机操作系统
  3. 统信UOS系统故障维护
  4. 回头是岸——卡巴斯基张立申致360周鸿祎的一封信
  5. Jenkins Role-based Authorization Strategy基于角色的访问权限控制
  6. 扬州和苏州计算机发展前景,江苏未来“最吃香的”城市,GDP仅次于北上广深,淮安、扬州落选...
  7. heartbleed_Heartbleed:这是什么,您应该怎么做?
  8. 神经网络学习(二):解常微分方程
  9. hud抬头显示器哪个好_抬头显示器HUD研究综述
  10. 计算机中只能启动硬盘上安装的操作系统,开机“找不到启动设备,请在硬盘上安装操作系统,硬盘(3F0),F2 系统检测”怎么解决?...