编写一个程序demo.py,要求运行该程序后,生成demo_new.py文件,其中内容与demo.py文件相同,只是在每一行的后面加上#和该行所在的行号。要求行号以#开始,并且所有行的#垂直对齐。

源代码中不要加中文注释,会导致最后的#无法对齐

代码如下:


with open('demo.py', 'r', encoding='utf-8') as file:
    lines = file.readlines()
A='demo.py'
max_length = max(len(line.rstrip()) for line in lines)

with open( 'demo_new.py', 'w', encoding='utf-8') as file:
    for i, line in enumerate(lines):
        line_number = i + 1
        updated_line = line.rstrip() + ' ' * (max_length - len(line.rstrip())) + '# ' + str(line_number)
        file.write(updated_line + '\n')



 

 运行结果:

代码注释:


# 打开名为'demo.py'的文件,以只读方式读取(使用utf-8编码)
with open('demo.py', 'r', encoding='utf-8') as file:
    # 将文件的内容按行读取,并存储在列表变量lines中
    lines = file.readlines()


#列表解析式len(line.rstrip()) for line in lines用于创建一个包含每行长度的列表。
max_length = max(len(line.rstrip()) for line in lines)  #再Lines里面,对每行line的长度进行测量,然后选出最大值

# 创建一个名为'demo_new.py'的文件,并以写入方式打开(使用utf-8编码)
with open('demo_new.py', 'w', encoding='utf-8') as file:
    # 遍历lines列表中的每一行(同时获取行号和行内容)
    #enumerate(lines)将lines列表转换为一个可迭代对象,每次迭代返回一个包含索引和对应元素的元组。
    for i, line in enumerate(lines):
        # 计算行号(从1开始)
        line_number = i + 1
        # 更新行内容,将行末尾的空格和换行符去除,并在行末尾添加空格,使其达到最大长度
        # 然后在行末尾添加'#'、行号,并将结果存储在updated_line中
        updated_line = line.rstrip() + ' ' * (max_length - len(line.rstrip())) + '# ' + str(line_number)
        # 将updated_line写入到文件中,并在末尾添加换行符
        file.write(updated_line + '\n')

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值