第二次作业

作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc
作业目标 实现一个命令行文本计数统计程序
姓名-学号 祝方略-2022329301131
码云仓库网址 https://gitee.com/zhu-fangzhi/museum-integrated-management-system#museum-integrated-management-system

详细的代码请点击上面的码云仓库地址

文件统计工具

一、简介

   这是一个 Python 脚本工具,用于统计指定文本文件中的字符数、单词数、代码行数、空行数和注释行数。该工具支持从命令行传入参数来选择需要统计的内容类型。

二、功能概述

  • 字符数统计:计算文件中的总字符数。
  • 单词数统计:计算文件中的总单词数。
  • 行数统计:
    • 代码行数:实际包含代码的行数。
    • 空行数:没有任何内容的行数。
    • 注释行数:以 # 或 // 开头的行数。

三、文件概述

  • base.txt 是基础测试文件
  • img.png 是命令行运行结果
  • Main.py 是主程序入口
  • UnitTest.py 是单元测试

四、安装步骤

   此脚本基于 Python 3.x 开发,无需额外的第三方库。确保你的环境中已经安装了 Python 3.x 版本。

安装 Python

如果你还没有安装 Python,可以从官方网站下载安装包并按照指示进行安装: https://www.python.org/downloads/

五、使用方法

1.命令行参数

  • python Main.py

2.可用选项

  • -c 或 --characters:统计文件中的字符数。
  • -w 或 --words:统计文件中的单词数。
  • -l 或 --lines:统计文件中的代码行数、空行数和注释行数。

3.运行示例

  • 统计字符数
    python Main.py -c example.txt
  • 统计单词数
    python Main.py -w example.txt
  • 统计行数
    python Main.py -l example.txt

4.输出示例

  • 字符数统计
    Number of characters in 'example.txt': 123
  • 单词数统计
    Number of words in 'example.txt': 20
  • 行数统计
    Lines statistics for 'example.txt':
    Code lines: 10
    Empty lines: 5
    Comment lines: 3

六、注意事项

  • 确保在运行脚本之前,文件路径是正确的,并且文件是可以访问的。
  • 本脚本默认假设文件编码为 UTF-8。如果文件使用了不同的编码,请在脚本中相应修改。
  • 如果文件非常大,这个脚本可能会消耗较多内存。对于极大数据集,考虑使用更高效的方法。
  • 当前脚本仅支持单行注释(以 # 或 // 开头)。对于其他注释风格,如多行注释,可能需要扩展脚本功能。
    测试
  • 为了确保脚本的功能正确性,我们还提供了一个单元测试脚本 UnitTest.py。你可以使用以下命令来运行测试:
    python UnitTest.py

七、心得体会

   完成这个命令行文本计数统计程序的作业,我深刻体会到了软件开发的全过程,从需求分析到设计、编码、测试,再到版本控制和性能测试。这个过程不仅锻炼了我的编程能力,还提高了我的问题解决能力和项目管理技能。

  • 在项目初期,我首先理解了作业要求,并在码云上注册了自己的账号,创建了项目仓库。我意识到,一个清晰的项目结构和文档对于后续的开发和维护至关重要。因此,我在项目的README.md文件中详细记录了项目的简介、用法、文件列表和例程运行结果,确保即使是其他开发者也能快速理解我的项目。
  • 在编码阶段,我首先实现了基础功能,即统计字符数、单词数和句子数。我选择了Python语言进行开发,因为它简洁且拥有丰富的库支持,特别适合处理文本数据。我编写了命令行界面,让用户可以通过参数选择不同的统计功能。在实现这些功能时,我学习了如何使用正则表达式来识别单词和句子的边界,这是一项非常实用的技能。
  • 随后,我进行了版本控制,将基础功能作为v0.2版本提交到了码云。这个过程让我意识到了版本控制的重要性,它不仅帮助我追踪代码的变化,还让我能够在遇到问题时回退到之前的版本。
  • 为了实现扩展功能,我增加了统计代码行、空行和注释行的功能。这个过程中,我深入学习了不同编程语言的注释规则,并编写了相应的正则表达式来识别它们。这个功能的实现提高了我的正则表达式编写能力,并且让我对代码分析有了更深的理解。
  • 在测试阶段,我编写了单元测试来验证我的代码。这让我学会了如何设计测试用例,以及如何使用测试框架来自动化测试过程。我还进行了性能测试,以确保我的程序在处理大型文件时仍然高效。这些测试不仅提高了代码的稳定性,还增强了我对软件质量保证的认识。
  • 最后,我将扩展功能作为v0.3版本提交,并附上了运行结果的截图。这个作业让我深刻体会到了软件开发的复杂性和挑战性,同时也让我更加自信地面对将来的编程任务。通过这次实践,我不仅提升了自己的技术能力,还学会了如何有效地管理项目和与他人协作。这是一个宝贵的学习经历,我将把这些经验应用到未来的学习和工作中。
posted @ 2024-10-28 18:44  书涵  阅读(34)  评论(0编辑  收藏  举报