天外来信

来源 :中国信息技术教育 | 被引量 : 0次 | 上传用户:kok671113
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读

情境导入


  忽然有一天,阿派收到一封外面世界的来信,他迫不及待地开始读信,却发现信件内容全是一串一串的数字……
  在这一课中,学生将学习如何利用Python读写文件及其拓展应用。

读信


  在阿派读信之前,先来了解一下Python是如何读取文件的。
  1.Python读取文件
  (1)读取文件的简单示例
  关于文件的基本处理主要有文件的打开、操作和关闭。如表1,利用open()打开letter.txt文件,并返回一个名为f的文件对象。其中,打开文件的模式有只读、写入、追加等,默认的文件访问模式为只读(r)。表1的程序运行后,将会读取如图1的文件letter.txt,运行的结果如图2。
  (2)read()方法
  当read()的括号内为空或负数时,将读取文件的所有内容。如果调用f.read(size),size是一个可选的数字类型的参数,则将读取指定的数据。比如,将表1的第3行代码修改为print(f.read(5)),则程序运行结果如图3。
  (3)readline()方法
  f.readline()会从文件中读取当前指针下一行内容的字符串。比如,将表1的第3行代码修改为print(f.readline()),则程序运行结果如下页图4。如果将第3行修改为2行readline(),则运行效果如下页图5,由于print默认换行,会在输出一行字符串后产生一行空行。如果不想产生空行,则将代码修改为print(f.readline(), end=’’),其中的end=’’表示print输出之后不换行。
  (4)readlines()方法
  f.readlines()将返回整个文件内容的列表,每一项是以换行符结尾的一行字符串。比如,将表1的第3行代码修改为print(f.readlines()),则程序运行结果如下页图6。
  (5)for line in f:的作用
  如下页表2,利用for line in f:可以实现文件的遍历。这种做法在读取文件时,不是一次性读取全部文件,而是采用每次读取一行的方式。
  关于文件的读取模式,除了r(只读)模式以外,还有rb模式,表示以二进制格式打开一个文件用于只读。另外,还有r 模式,表示打开一个文件用于读写。还有rb 模式,可以用二进制格式打开一个文件用于读写。以上四种模式,文件指针都会放在文件的开头。
  2.破译天外来信
  在了解了Python读取文件的基本操作后,我们和阿派一起来解读那封全是数字的信件。信件的内容如下页图7,为十行数字。如果按照一定的规则来读信,可以将其解读为如图8的图案。具体的规则是:每一行为一组数据。第1个数字表示前进的像素;第2个数字为0表示左转,1表示右转;第3个数字表示旋转角度;第4~6个数字分别表示RGB颜色。据此规则,第1行数字表示向默认的水平向右的方向绘制一条红色的直线,再向右旋转144度。
  结合turtle库,利用如图9的核心代码,可以实现如图8的信件图案的绘制效果。其中的第4行代码中,line.split(‘,’)表示以逗号区分间隔,对字符串切片。map(float,line.split(‘,’))表示对指定序列做映射,将每一个元素转为浮点数。list表示将结果保存为列表,比如[300.0, 1.0, 144.0, 1.0, 0.0, 0.0]。result.append表示追加到result列表中。第5行代码将读取的信件内容输出至屏幕,效果如图10。第6~12行代码实现了绘制图案的过程。
  对于信件中的那一串串数字,我们还可以使用不同的规则来解读,当然所绘制的图案也就不同。

回信


  1.Python写入文件
  利用write()方法,可以将数据写入指定文件中。如图11,先打开已有文件或新建一个空白的文本文档reply.txt,利用input函数提示用户输入回信内容,并将输入的字符串写入reply文件,再读取信件内容,并关闭文件。其中,f.seek(0)表示重新设置文件读取指针到开头。如图12,利用a 模式还可以追加信件内容。
  常用的文件写入模式有w模式,表示打开一个文件且只能写入。如图11中w 模式表示打开一个文件用于读写。w和w 模式下,如果该文件已存在則将其覆盖。如果该文件不存在,创建新文件。图12的a 模式表示打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾,即追加模式。如果该文件不存在,则创建新文件用于读写。
  2.回信
  第119页的图11~12的文件写入方式,都只能写入一行数据。一般情况下,正式的写信,需要输入多行文本,直至输入为空时,表示写信结束。如第119页图13,我们可以利用while循环语句实现多行回信的功能。而在按下两次回车键后,即输入为空时,会返回信件内容(如第119页图14)。
  参照阿派破译数字信件的过程,你也可以逆向设计,将回信内容设置为几行数字,并按照特定规则来读取,实现特定的图案效果。
  在Python中的文件读写,还有其他的拓展应用,如读取Excel文件,或者利用matplotlib第三方库来绘制2D图表等,你可以根据实际需要来进行设计和应用。
其他文献
在你离开医生诊室或药房之前,获得以下这些问题的答案,能使你服用的抗生素尽可能地有效。  1.我为什么要吃这种药?  每个患者都应该确认并理解为什么医生要给他们开抗生素。服用不必要的抗生素会使细菌对药物产生耐药性,所以要与医生进行讨论,确认你的处方是最好的选择。  2.我应该什么时候服药?  抗生素要在血液中達到一定的浓度才能起效,因此要按时服药。早上醒来时、午饭前和入睡前服药,能最大限度地保证你不
装备维修保障力量是陆军合成部队组织实施装备战场抢救、抢修和后送活动的主要组成部分,是保持和恢复武器装备战技术性能的主要力量。面对战争形式和战场环境的变化,美军通过改善装备维修保障力量结构,优化作战和保障力量任务编组,不断更新完善条令法规政策,取得了较好的实际效果。本文重点对美陆军装甲旅战斗队装备维修保障力量的编制结构和作战编组展开研究,总结其中成果,以期为后续相关研究提供借鉴参考。装甲旅战斗队装备
秋风乍起,到了大学开学的日子。多少怀揣录取通知书的孩子,像小鸟离巢一样扑棱棱展开翅膀,飞出了家门,飞向了远方。   有些家庭中年空巢就成了问题,甚至成为危机。这是心理上存在难以解开的情结所致。  空巢危机心结在哪里?   一个是“亲子关系一体化心理”。这样的家庭多只有一个孩子,子女会对父母产生依赖心理,这又导致父母对子女产生“反向依赖心理”——如果子女不依赖他们,他们就觉得失落。独生子女现象加
初冬,小雨,大雾,一行人撑伞,去登鱼山。  鱼山实在是小。在我所登过的山里,海拔82.1米、占地80余公顷的鱼山,几乎不能算山。但山不在高,有仙则名,因为东阿王曹植登临于此,并在死后葬于此地,形如沉默甲鱼的鱼山,自此声名显赫,朝拜者络绎不绝。  登鱼山之前,我从未想过写出精彩绝伦《洛神赋》的曹植,会选择死后葬在这样一座小小的山丘上。而且,还是在陈地(今河南淮阳)病逝之后,其子曹志遵其遗嘱,千里迢迢
老张是业务员,平时通过提成来增长收入。这次,他接了一个非常大的单子,对方公司派来和他对接的是位年轻女性,没办法,老张只好陪客户参观、应酬等,而老张也因为要陪客户,平时也非常疲惫,回到家倒头就睡,因此一段时间里,夫妻二人甚至没有同房。老张的妻子对他产生了怀疑:天天陪着外面的女人,是有外遇了吧?于是每天老张下班回家,妻子就对他横挑鼻子竖挑眼,久而久之夫妻关系紧张。  其实,这些都是生活中经常会发生的小
在已经被查封的500多个涉黄网站中,其流量不过占所有WAP总流量的0.2%,只占中国移动总收入的0.052%。    2009年对于手机运营商来说富有戏剧性。  年初,工业和信息化部(下称“工信部”)给三大运营商发3G(第三代移动通信)牌照,可谓“歌台暖响,春光融融”。时值岁末,手机扫黄风暴声势惊人,又似“舞殿冷袖,风雨凄凄”。  11月14日起,中央电视台“焦点访谈”推出题为“大量手机色情网站出
喝牛奶是有讲究的。不建议空腹喝牛奶,因为空腹喝牛奶,所含营养物质不能被充分吸收利用,建议最好在饭后或饭间饮奶。  對乳糖不耐受者,喝牛奶会出现腹胀、肠鸣、腹泻等不适,这种人不能大量喝牛奶,建议搭配谷类食物,少量多次喝,每次50毫升,也可以改为酸奶或加入了乳糖酶的低乳糖牛奶,都能减轻乳糖不耐受情况。  刚挤出来未经杀菌的生鲜牛奶不建议直接喝,鲜牛奶应经过巴氏消毒或超高温瞬时灭菌处理后方可饮用。  摘
血瘀是人体常见的病理现象,不同程度的血瘀对人体的危害是不一样的。  很多指标可以帮助我们判断血瘀的程度,对普通人而言,最直观的方法就是看舌头。  看舌头的颜色 这里可以借助水果的颜色来辨认。轻度血瘀的舌头一般是像西瓜一样的暗红色,中度血瘀的舌头像红心火龙果的暗紫色,重度血瘀的舌头为青紫色。  看舌上是否有瘀点或瘀斑 一般只有瘀点的为轻度血瘀,只在舌边可以看到瘀斑的为中度血瘀,看到大块瘀斑的则是重度
肠道中益生菌的定植数量直接影响机体免疫力的高低,因此应多选食用益生菌喜欢的食物。  益生菌喜歡的专属食物叫“益生元”,它不仅能刺激益生菌的生长,还可选择性地刺激结肠中固有有益菌的生长,调节肠道菌群平衡,提高机体免疫力,预防疾病。  其中,益生菌喜欢的食物包括含低聚糖丰富的食物,如豆制品、洋葱、香蕉,海藻类如海带等,发酵食品如酸奶等,菌菇类如香菇等。相反,那些太辣、太烫的食物则是肠道不喜欢的,要避免
1962年10月27日清晨,美国空军少校鲁道夫·安德森驾驶U-2高空侦察机飞上蓝天。他不知道,这不仅是他最后一次飞行,而且也是他生命的最后一天。当地时间8时,他穿越了古巴边界。1小时20分钟以后,他驾驶的飞机遭到一次最沉重的打击,接着又是一次,而安德森在第一次就已命归西天。U-2飞机被第二次打击击成碎块,从天上散落下来。  对于50多年前的这场悲剧众说纷纭。最普遍的说法为,这架U-2侦察机是被古巴