Python代码统计工具

来源:千锋教育
发布时间:2023-11-07 04:48:59
分享

此前实现的C代码统计工具仅能分析和统计C语言代码文件,但其设计思想也适用于Python代码及其他编码语言。

Python行数统计的难点在于注释行,因为Python有两种注释方式:简单明了的单行注释和复杂含糊的多行注释(块注释)。单行注释以#(pound或hash)符号起始,直至物理行的末尾(但字符串内的#并无注释作用)。多行注释可在每行头部添加#号,也可包入未命名的三引号字符串(triple-quotedstrings,即多行字符串)内。除非未命名三引号字符串作为对象的文档字符串(docstring),即模块、类、或函数体的第一条语句为未命名字符串,否则可作为多行注释。

下面以总27_代7_注15_空5.py脚本为例,演示不同的注释方式。注意,该脚本仅作测试数据用,并非真实世界中的脚本文件。

#!/usr/bin/python

#-*-coding:utf-8-*-

#comment3

print'code1'

'''comment4

print"""comment5"""

comment6'''

"""comment7

'''print'comment8andcomment9'

"""

print'code2'

defcode3():

"""f=open('whatever','r')

multilinecomment10,11,12makeupadocstring

"""

print'code4'

'''

print'comment13,comment14andcomment15'

'''

return'code5'

help(code3);print'code6'

printcode3.__doc__,'code7'

运行该脚本后,输出如下:

code1

code2

Helponfunctioncode3inmodule__main__:

code3()

f=open('whatever','r')

multilinecomment10,11,12makeupadocstring

code6

f=open('whatever','r')

multilinecomment10,11,12makeupadocstring

code7

使用未命名三引号字符串做注释时,存在如下缺点:

未命名字符串本质上并非注释,而是不生成字节码的语句。因此,需要满足缩进要求(常错点)。

无法注释掉已包含相同三引号字符串的代码。

IDE的语法高亮会将三引号字符串标记为字符串,而不是注释区。

此外,大多数IDE均支持选择代码片段,并自动使用单行注释符对选区添加注释。以IDLE(PythonGUI)为例,快捷键Alt+3可添加注释,Alt+4可删除注释。因此,建议总是使用#号添加多行注释,而三引号字符串仅用于调试过程中临时性地注释代码块。

以上内容为大家介绍了Python代码统计工具,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • Python C代码统计工具代码的效果验证 为验证上篇文章的代码实现,建立lctest调试目录。该目录下包含line.c及和《为C函数自动添加跟踪语句》一文中的test.c文件。其中,line.c内容如下:#include/*{{{commen
  • python np.nonzero()函数 nonzero函数是numpy中用于得到数组array中非零元素的目录(位置)的函数。返回值为元组,两个值分别为两个维度,包含了相应维度上非零元素的目录值。只有a中非零元素才会有索引值,那些零值元素没
  • Python 分类技术 分类技术(或分类法)是一种根据输入数据建立分类模型的系统方法,分类法的例子包括决策分类法,基于规则的分类法,神经网络,支持向量机和朴素贝叶斯分类法。这些技术都使用一种学习算法(learningalgo
  • Python 决策树算法思想 决策树(decisiontree)是一个树结构(可以是二叉树或者非二叉树)。决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量做决策树。其中每个非叶节点表示一个特征属性上的测试,
  • Python 决策树的生成算法介绍 划分数据集的最大原则是:使无序的数据变的有序。如果一个训练数据中有20个特征,那么选取哪个做划分依据?这就必须采用量化的方法来判断,量化划分方法有多重,其中一项就是“信息论度量信息分类”。基于信息论的
  • Python C4.5算法 ID3算法的作者昆兰基于上面的不足,对ID3算法做了改进,这就是C4.5算法,也许你会问,为什么不叫ID4,ID5之类的名字呢?那是因为决策树当时太火爆了,它的ID3一出来,别人二次创新,很快就占了I