文章目录

  • 前言
  • 题目解析
    • 题干
    • 解题步骤
    • 完整代码
    • 最终效果
  • 知识点与收获

前言

成电微光工作室2020笔试第一题,下一届想进入微光工作室的成电小伙伴可以来康康。

题目解析

题干

题目给出这样一段txt文件:

a:小伙子最近怎么样
b:最近在参加微光工作室的招新
a:感觉怎样
b:感觉好多题有点难
a:那咋办嘛
b:那咋办嘛
a:那咋办嘛
b:那咋办嘛
a:那咋办嘛
b:那我能咋办嘛
a:好好学习,加油进微光啊
c:你们两个上课讲什么话
b:那我去努力学习了,不谈了,886
*

要求制作一个程序,使对话输入后将每个人说的话分组,分别将每个人说的话存入到一个txt文件中,并且将每个人不重复的对话分别存入到一个pkl文件中,并以对应人名命名文件

解题步骤

step1 读入文件
使用with open 与readlines配合的方法,将对话文本逐行读出

step2 分辨人名的方法
首先可以考虑将每一句话当成一个字符串,运用切片得到的第一个字符即是人名,事实上这样可行。但是,这仅限于本题中名字为一个英文字母的情况,那么怎样得到一个普适的分辨方法呢?

使用spilt方法可以很好的解决问题,以冒号为分界可以一目了然地分离出人名与对话内容

step3 完成程序主干要求

完整代码

import pickle# 引入pkl模块。with open("dialog.txt", mode="r", encoding='utf-8') as fi:lines = fi.readlines()# 将dialog中的内容全部逐行读出。dialog = {}
for line in lines:s = line.split(':', 1)# 以冒号为分界区别开人名与对话内容。if s[0] not in dialog:dialog[s[0]] = [s[0]+"-01.txt", s[0]+"-02.pkl", {}]# 将每个人名与一个列表对应存储入字典,且使用if not in结构来确保人名不重复。with open(dialog[s[0]][0], mode="a+") as fo:fo.writelines(s[1])# 以追加形式将对话内容逐行补充导各自的文件尾部,完成题目的第二项要求。if s[1] not in dialog[s[0]][2]:dialog[s[0]][2][s[1]] = ""# 将不重复的对话以键的形式存入字典,赋值为空(随便赋值什么应该都无所谓)。with open(dialog[s[0]][1], mode="wb+") as fo:pickle.dump(s[1], fo)# 以追加形式将不重复对话逐行写入pkl文件,完成题目第三项要求。

最终效果


pkl不便展示就不放图了

知识点与收获

1.开关读写文件的方法,读写文件的不同模式;
2.分辨复读机的思想内核;
3.写入中文出现乱码时的基本解决方法。

python 2020微光 笔试01 分辨复读机相关推荐

  1. 网易2020校招笔试 系统开发研发工程师(提前批)牛客练习 Apare_xzc

    网易2020校招笔试 系统开发研发工程师(提前批)练习 2020.9.4 10道选择,2道问答,4道编程 牛客链接<– 编程题: 1. 小易的英语软件 小易是班级的英语课代表, 他开发了一款软件 ...

  2. 简单复读机LR如何成为推荐系统精排之锋?

    文 | 水哥 源 | 知乎 saying 1. 众所周知, 人类(划掉)推荐的本质是复读机 2. 精排之锋,粗排之柔,召回之厚 3. 在推荐里谈"过拟合"很容易给我们造成心理上的松 ...

  3. (原创)C# LRC复读机-1

    最近想恶补下英语,找了很多MP3播放软件,但是没有哪个能按照句子播放时间来播放声音的,想想自己学习过的WinForm,为什么不自己写一个程序呢?一个想法出现在脑海中,说干就干,花了一天时间,先研究了一 ...

  4. (python)牛客网(华为机试四)——较难

    本博客为博主解题的部分记录,由于均为自己写的,所以答案并非最优解,有很多地方可以优化. 其他题解合集: (python)牛客网(华为机试一)--入门 (python)牛客网(华为机试二)--简单 (p ...

  5. 磁带转换成MP3 文件,摆脱复读机

    一.就是3.5接口的直录线,2元一根,接入声卡的Line IN口,另一端接入录音机的耳机口,用goldwave或Audition.exe录音,在音量属性中选录音选项,来源选Stereo 即立体声输入, ...

  6. 【Qbot】6.讯飞文字转语音Api使用/VITS派蒙复读机实现

    该项目计划长期进行维护更新,欢迎star:https://github.com/zstar1003/Qbot 前言 看完流浪地球2之后,萌生了一个想法:我想给机器人完整的一生.作为一个完整的机器人,声 ...

  7. 主管护士需要考计算机和英语吗,2020主管护师改为机考,一定要注意这些问题!...

    原标题:2020主管护师改为机考,一定要注意这些问题! 中国卫生人才网官方通知已确定,2020年护理学中级既主管护师考试形式-推行机考.那么,人机对话考试怎么考,有什么注意事项,为考生整理如下: 1. ...

  8. [集训队作业2018] 复读机(生成函数,单位根反演)

    传送门 subtask 1:d=1d=1d=1 答案为knk^nkn. subtask 2:n≤1000,k≤100n\leq1000,k\leq 100n≤1000,k≤100 设f[i][j]f[ ...

  9. 【牛客 - 327G】处女座与复读机(可编辑距离问题,dp)

    题干: 链接:https://ac.nowcoder.com/acm/contest/327/G 来源:牛客网 一天,处女座在牛客算法群里发了一句"我好强啊",引起无数的复读,可是 ...

最新文章

  1. 【转】做正确的事情,等着被开除(Do the right thing, Wait to get fired)
  2. Axios的基本使用
  3. 汇编语言Makefile
  4. [PAMI2013] Guided Image Filtering 导向滤波器以及OpenCV-Python代码实现
  5. JavaScript高级day02-PM【原型链的属性问题、探索instanceof、原型面试题】
  6. powermock模拟对象_使用PowerMock测试对象的内部状态
  7. pat 乙级 1027 打印沙漏(C++)
  8. 光流估计——从传统方法到深度学习
  9. MyBatis学习总结(18)——MyBatis与Hibernate详细比较
  10. CodeForces - 1610B Kalindrome Array
  11. ini文件中文乱码 python_用心盘Python:中文文件处理早晚会用到的将中文转成拼音...
  12. postgresql设置postgres密码_django项目时配置postgresql数据库的方法
  13. 第五次作业--原型设计(结对)
  14. 渗透测试-内网横向MS-17010利用方法总结
  15. 利用python快速视频格式转换 解决 Premiere 导入TS文件只有声音没有视频
  16. Google的地球日图标08版
  17. HashMap原理以及TreeMap和Collections工具类(2022.6.10)
  18. echarts从全国地图切换成省级地图地图不居中的问题
  19. DARTS 可微 架构搜索
  20. 推荐几个好玩的游戏:

热门文章

  1. open_nsfw: 雅虎基于Caffe的成人图片识别模型
  2. AI+药物设计:AI制药与产业前沿
  3. Cisco之show ip arp 与 show mac-address-table
  4. 《你不可不知的人性》刘墉 读书笔记(一)
  5. 【1】基础知识——♥计算机系统结构♥
  6. skysat重访周期_重访CSS背景属性
  7. 格式工厂AVI格式视频转MP4画面不清晰变模糊解决办法
  8. Win11如何创建子账户?Win11子账户设置方法
  9. “AV终结者”预防方法
  10. codeforces#1166F. Vicky's Delivery (Service并查集+启发式合并)