考生文件夹下存在两个Python源文件PY301—1.py和PY301一2.py,分别对应两个问题,请按照文件内说明修改代码,实现以下功能: 李白,字太白,号青莲居士,又号“谪仙人”,是唐代伟大的浪漫主义诗人,被后世誉为“诗仙”。考生文件夹下有一个

admin2020-04-10  32

问题 考生文件夹下存在两个Python源文件PY301—1.py和PY301一2.py,分别对应两个问题,请按照文件内说明修改代码,实现以下功能:
    李白,字太白,号青莲居士,又号“谪仙人”,是唐代伟大的浪漫主义诗人,被后世誉为“诗仙”。考生文件夹下有一个“关山月.txt”文件,内容如下:
    明月出天山,苍茫云海间。长风几万里,吹度玉门关。汉下白登道,胡窥青海湾。由来征战地,不见有人还。戍客望边邑,思归多苦颜。高楼当此夜,叹息未应闲。
    问题1:这是一段由标点符号分隔的文本,请编写程序,以“。”句号标点符号为分隔,将这段文本转换为诗词风格,输出到文件“关山月一诗歌.txt”中。
    试题程序:
    #以下代码为提示框架
    #请在…处使用一行或多行代码替换
    #请在_________处使用一行代码替换
    #注意:提示框架代码可以任意修改,以完成程序功能为准
    fi=open(”关山月.txt”,”r”)
    …
    fi.close()
    fo.close()
    问题2:把问题1生成的“关山月一诗歌.txt”文件,以每行为单位,保留标点符号为原顺序及位置,输出全文的反转形式。将文件保存在考生文件夹下并命名为“关山月一反转.txt”。输出的形式为:
    高楼当此夜,叹息未应闲。
    戍客望边邑,思归多苦颜。
    由来征战地,不见有人还。
    汉下白登道,胡窥青海湾。
    长风几万里,吹度玉门关。
    明月出天山,苍茫云海间。
    试题程序:
    #以下代码为提示框架
    #请在…处使用一行或多行代码替换
    #请在______处使用一行代码替换
    #注意:提示框架代码可以任意修改,以完成程序功能为准
    fi=open(”关山月一诗歌.txt”,”r”)
    fo=open(”关山月一反转.txt”,”w”)
   …
    fi.close()
    fo.close()

选项

答案(1)fi=open(”关山月.txt”,”r”) fo=open("关山月-诗歌.txt","w") txt=fi.read() ls=txt.split("。") fo.write("。\n",join(ls)) fi.close() fo.close() (2)fi=open(”关山月一诗歌.txt”,”r”) fo=open(”关山月一反转.txt”,”w”) txt=fi.readlines() txt.reverse() for row in txt; fo.write(row) fi.close() fo.close()

解析 (1)题目给出的文件内容是一段文本,要把文本改为诗词风格,即以句号分隔,可使用字符串的split()方法,该方法返回的是一个列表;列表的每个元素都是一行诗句,使用join()方法把列表的每一个元素写入到“关山月一诗歌.txt”文件中,连接符为句号和换行符;操作完成之后将打开的文件用close()方法关闭,避免文件丢失。
(2)把“问题1”生成的诗词风格的文件按照每行为单位将其逆序输出,须使用列表的reverse()方法,即需要把文件的内容转换为列表类型,readlines()方法从文件中读入所有行的,以每行为元素形成一个列表,然后调用reverse()方法反转,将反转后的内容写入到“关山月一反转.txt”文件中。操作完成之后将打开的文件用close()方法关闭,避免文件丢失。
转载请注明原文地址:https://kaotiyun.com/show/5r6p777K
0

最新回复(0)