英文电影中参演人员名单一般以某种方式进行排版显示。给定一个未排版的文件listin.txt,该文件中每行参演人员名单由冒号ldquo:rdquo分隔成前后两部分,但格式杂乱无章,单词(由除空格和水平制表符之外的其它字符构成)之间可能有多个空格或水平制表符分隔。编写程序,要求将其按如下排版规则排版输出到另一个文件listout.txt中: 1.从标准输入整数,作为排版后所有各行冒号在一行中的固定位置,输入的整数肯定大于排版后所有各行冒号前的字符个数,位置从1开始计数; 2.冒号左边的单词串以行头为基准左对齐,左边的最后一个单词与冒号之间以空格填充;冒号右边的单词串以冒号基准左对齐,最后一个单词后只有回车换行符,不再有其它字符; 3.冒号左右两边的单词间都只有一个空格分隔,并且要求冒号两边至少各有一个空格。 假设输入文件中每行字符个数不超过100。 【输入形式】 待排版的参演人员名单从当前目录下的listin.txt文件中读入,表示冒号位置的整数从标准输入读入。

时间: 2023-04-29 07:06:37 浏览: 136
题目要求对一个英文电影中的参演人员名单进行排序显示,要求将未排序的文件listin.txt中的每行参演人员名单按照整数升序排列,每行参演人员名单中的冒号“:”分隔成前后两部分,但格式杂乱无章,单词(由除空格和水平制表符之外的其他字符构成)间可能有多个空格或制表符分隔,先用标准输入读入未排序的文件listin.txt,然后按如下要求编写程序,将其按照规则排好序输出到另外一个文件listout.txt中: 1. 从标准输入整数,作为排序后所有行冒号“:”之前的整数为基准左右对齐,输入的整数肯定大于排序后所有行基准前的整数,计数从1开始; 2. 冒号左边的单词串以行头为基准左对齐,右边的单词串以行尾为基准右对齐,行的总长度则为基准左边的整数和右边的单词串长度加至少一个空格的长度,并在其间按空格左对齐排列。 3. 冒号两边的单词串之间只有一个空格,两端均无空格。 需要注意的是,输入文件中每行的字符数目不能超过100。 具体实现策略如下: 1. 将文件读入,逐行读入每个人员名单,并统计每个名单前面的数字。 2. 将名单以冒号分割并去除空格存入一个字典中. 3. 将数字和名单分别存入两个列表中,并将它们压成一个元组列表. 4. 对元组列表进行排序后,将排序后的内容以所需格式写入listout.txt文件中.
相关问题

英文电影中参演人员名单一般以某种方式进行排版显示。给定一个未排版的文件listin.txt,该文件中每行参演人员名单由冒号“:”分隔成前后两部分,但格式杂乱无章,单词(由除空格和水平制表符之外的其它字

这道题目要求按照一定的方式对英文电影中演员名单进行排序显示。首先要给定一个未排序版本的文件listin.txt,每行参演人员名单由逗号分隔。接着,需要以冒号为分隔符将每行参演人员名单分隔成前后两部分,然后根据一定的规则对前半部分的参演人员名单进行排序,最后再按照冒号分隔符的方式将前后两部分拼接起来并输出到终端上。需要注意的是,排序时用到的规则有些复杂,需要对空格和水平制表符之外的其他字符进行忽略处理。

英文电影中参演人员名单一般以某种方式进行排版显示。给定一个未排版的文件listin.txt,该文件中每行参演人员名单由冒号':'分隔成前后两部分,但格式杂乱无章,单词之间可能有多个空格或水平制表符分隔。编写程序,要求将其按如下排版规则排版输出到另一个文件listout.txt中: 1、从键盘输入一个整数,作为排版后所有各行冒号':'在一行中的固定位置;假设输入的整数肯定大于排版后所有各行冒号':'前的字符个数,位置从1开始计数; 2、冒号':'左边的单词串左对齐,左边的最后一个单词与冒号之间以空格填充;冒号':'右边的单词串以冒号':'为基准左对齐,最后一个单词后只有回车换行符,不再有其它字符; 3、冒号':'左右两边的单词之间都只有一个空格分隔,并且要求冒号与右边的首个单词之间有一个空格。 假设输入文件中每行字符个数不超过100。 输入格式: 先从键盘输入一个整数,表示冒号':'所在的位置。待排版的名单从当前目录下的listin.txt文件中读入。 输出格式: 排版后的名单输出到当前目录下的listout.txt中。如下图: 输入样例: 40 输出样例: 排版后的名单输出至文件listout.txt 无 Python代码

由于题目中需要从文件中读取输入和输出,这里提供 Python 的完整实现代码: ```python # 读取输入整数 pos = int(input()) # 打开输入文件和输出文件 with open('listin.txt', 'r') as fin, open('listout.txt', 'w') as fout: # 逐行读取输入文件,并进行排版 for line in fin: # 去除行尾的换行符 line = line.rstrip('\n') # 查找冒号的位置 colon_pos = line.find(':') # 如果冒号不存在,则直接输出原行 if colon_pos == -1: fout.write(line + '\n') else: # 计算左边单词串和右边单词串的长度 left_len = colon_pos right_len = len(line) - colon_pos - 1 # 计算右边单词串前面需要填充的空格数 right_space = pos - colon_pos - 1 # 左对齐输出左边单词串 fout.write(line[:colon_pos].ljust(pos - 1) + ' ') # 输出右边单词串,并在前面填充空格 fout.write(line[colon_pos + 1:].rjust(right_space + right_len) + '\n') ``` 该程序首先从键盘读取整数 pos,表示冒号所在的位置。接着打开输入文件 listin.txt 和输出文件 listout.txt,在输入文件中逐行读取每个参演人员名单,进行排版后写入输出文件中。 排版的具体实现方式为: 1. 查找冒号的位置,如果不存在则直接输出原行; 2. 计算左边单词串和右边单词串的长度,以及右边单词串前面需要填充的空格数; 3. 左对齐输出左边单词串,并在最后一个单词后面填充一个空格; 4. 输出右边单词串,并在前面填充空格,最后换行输出。 需要注意的是,由于输入文件中每行字符个数不超过 100,因此程序不需要考虑一行输出超过 100 个字符的情况。

相关推荐

最新推荐

recommend-type

Java课程设计-java web 网上商城,后台商品管理(前后端源码+数据库+文档) .zip

项目规划与设计: 确定系统需求,包括商品管理的功能(如添加商品、编辑商品、删除商品、查看商品列表等)。 设计数据库模型,包括商品表、类别表、库存表等。 确定系统的技术栈,如使用Spring MVC作为MVC框架、Hibernate或MyBatis作为ORM框架、Spring Security进行权限控制等。 环境搭建: 搭建开发环境,包括安装JDK、配置Servlet容器(如Tomcat)、配置数据库(如MySQL)等。 创建一个Maven项目,添加所需的依赖库。 数据库设计与创建: 根据设计好的数据库模型,在数据库中创建相应的表结构。 后端开发: 创建Java实体类,对应数据库中的表结构。 编写数据访问层(DAO)代码,实现对商品信息的增删改查操作。 编写服务层(Service)代码,实现业务逻辑,如商品管理的各种操作。 开发控制器层(Controller),实现与前端页面的交互,接收请求并调用相应的服务进行处理。 前端开发: 使用HTML、CSS和JavaScript等前端技术,设计并实现商品管理页面的界面。 通过Ajax技术,实现前后端的数据交互,如异步加载商品列表、实
recommend-type

母线电容计算 .xmcd

变频器 母线电容计算 mathcad
recommend-type

2022年中国大学生计算机设计大赛国赛优秀作品点评微课与教学辅助&数媒静态设计专业组视频

2022年中国大学生计算机设计大赛国赛优秀作品点评微课与教学辅助&数媒静态设计专业组视频提取方式是百度网盘分享地址
recommend-type

输出月份英文名pta.doc

如果您想要在程序中输出月份的英文名称,并且提到了“pta”,但这里的“pta”与月份名称的输出没有直接关系(除非您是在特定的上下文中使用它作为一个变量名或标识符)。不过,我将直接给出如何输出月份英文名称的代码示例。 在Python中,您可以使用一个列表(list)或字典(dictionary)来存储月份的英文名称,并根据需要输出它们。以下是一个简单的示例: python # 使用列表存储月份的英文名称 months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] # 假设我们要输出第5个月份(即May) month_index = 4 # 注意列表索引从0开始,所以5月份是索引4 print(months[month_index]) # 输出: May # 或者,如果您想要通过月份的数字(1-12)来输出名称,可以稍作调整 def get_mo
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用matlab绘制高斯色噪声情况下的频率估计CRLB,其中w(n)是零均值高斯色噪声,w(n)=0.8*w(n-1)+e(n),e(n)服从零均值方差为se的高斯分布

以下是用matlab绘制高斯色噪声情况下频率估计CRLB的代码: ```matlab % 参数设置 N = 100; % 信号长度 se = 0.5; % 噪声方差 w = zeros(N,1); % 高斯色噪声 w(1) = randn(1)*sqrt(se); for n = 2:N w(n) = 0.8*w(n-1) + randn(1)*sqrt(se); end % 计算频率估计CRLB fs = 1; % 采样频率 df = 0.01; % 频率分辨率 f = 0:df:fs/2; % 频率范围 M = length(f); CRLB = zeros(M,1); for
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依