本文实例讲述了Python实现统计python文件中代码,注释及空白对应的行数。分享给大家供大家参考,具体如下:

其实代码和空白行很好统计,难点是注释行

python中的注释分为以#开头的单行注释

或者以'''开头以'''结尾 或以"""开头以"""结尾的文档注释,如:

'''

hello world

'''

'''

hello world'''

思路是用is_comment记录是否存在多行注释,如果不存在,则判断当前行是否以'''开头,是则将is_comment设为True,否则进行空行、当前行注释以及代码行的判断,如果is_comment已经为True即,多行注释已经开始,则判断当前行是否以'''结尾,是则将is_comment设为False,同时增加注释的行数。表示多行注释已经结束,反之继续,此时多行注释还未结束

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

#!python3

path = 'test.py'

with open(path,'r',encoding='utf-8') as f:

code_lines = 0 #代码行数

comment_lines = 0 #注释行数

blank_lines = 0 #空白行数 内容为'\n',strip()后为''

is_comment = False

start_comment_index = 0 #记录以'''或"""开头的注释位置

for index,line in enumerate(f,start=1):

line = line.strip() #去除开头和结尾的空白符

#判断多行注释是否已经开始

if not is_comment:

if line.startswith("'''") or line.startswith('"""'):

is_comment = True

start_comment_index = index

#单行注释

elif line.startswith('#'):

comment_lines += 1

#空白行

elif line == '':

blank_lines += 1

#代码行

else:

code_lines += 1

#多行注释已经开始

else:

if line.endswith("'''") or line.endswith('"""'):

is_comment = False

comment_lines += index - start_comment_index + 1

else:

pass

print("注释:%d" % comment_lines)

print("空行:%d" % blank_lines)

print("代码:%d" % code_lines)

运行结果:

注释:4

空行:2

代码:26

注:这里的Python测试文件test.py如下:

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

#!python3

#九九乘法表

for i in range(1, 10):

for j in range(1, i+1):

print("%d*%d=%d\t" % (j, i, i*j), end="")

print()

#斐波那契数列 0,1,1,2,3,5,8,...

num=int(input("需要几项?"))

n1=0

n2=1

count=2

if num<=0:

print("请输入一个整数。")

elif num==1:

print("斐波那契数列:")

print(n1)

elif num==2:

print("斐波那契数列:")

print(n1,",",n2)

else:

print("斐波那契数列:")

print(n1,",",n2,end=" , ")

while count

sum=n1+n2

print(sum,end=" , ")

n1=n2

n2=sum

count+=1

print()

感兴趣的朋友可以自己测试一下~

PS:这里再为大家推荐2款相关统计工具供大家参考:

希望本文所述对大家Python程序设计有所帮助。

python乘法表代码注释_Python统计python文件中代码,注释及空白对应的行数示例【测试可用】...相关推荐

  1. python使用什么来区分代码块_Python 小数据池、代码块以及代码块缓存机制

    按照惯例,吟诗一首:苏轼<江城子·乙卯正月二十日夜记梦> 十年生死两茫茫,不思量,自难忘.千里孤坟,无处话凄凉. 纵使相逢应不识,尘满面,鬓如霜. 夜来幽梦忽还乡,小轩窗,正梳妆.相顾无言 ...

  2. Python代码 | 文本操作 统计英文文本中,每个字母出现的次数

    Python代码 | 文本操作 统计英文文本中,每个字母出现的次数 # -*- coding: utf-8 -*- # 使用oepn获取文件路径 # path=open("arrogant. ...

  3. python docx 合并文档 图片_Python检查Word文件中包含特定关键字的所有页码

    推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社图书详情:配套资源:用书教师可以联系董老师获取教学大纲.课件.源码.教案.考试系 ...

  4. python读取日志统计ip_使用python脚本实现统计日志文件中的ip访问次数

    使用python脚本实现统计日志文件中的ip访问次数,注意此脚本只适用ip在每行开头的日志文件,需要的朋友可以参考下 适用的日志格式: 106.45.185.214 - - [06/Aug/2014: ...

  5. 学校作业5_3字符串_统计英文文件中的单词数(头哥作业[Python])

    本系列文章为同学困扰的python做出作业答案汇总,答案皆为本学生自己边学边做汇总上传的,编排不易,希望大家喜欢. 本作业所有内容均在github上有留存,每次作业github上会最先发布,CSDN上 ...

  6. 统计java文件中的代码行数

    统计Java代码行数工具类  --  CodeCounterUtil.java 统计指定目录下的java文件中代码行数  --  public static int  getCodeNumFromFo ...

  7. 在python平台上利用pymol来查找PDB文件中蛋白质的相互作用位点

    这篇代码写的可能有点问题,大家如果有需要,去看另一篇吧.如果有啥不足,请批评指正. 在python平台上利用pymol来查找PDB文件中蛋白质的相互作用位点 关于蛋白质结合位点,查阅了很多篇文献,大多 ...

  8. c语言:输入一个字符串,统计字母,数字,空格出现的个数,c - 统计字符串字母,空格,数字,其他字符的个数和行数....

    #include #include using namespace std; /* 题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. */ void count() { //统 ...

  9. json文件中注释_JSON注释示例—如何在JSON文件中进行注释

    json文件中注释 If you're having trouble adding comments to your JSON file, there's a good reason: JSON do ...

最新文章

  1. Hibernate **关于hibernate4.3版本之后org.hibernate.service.ServiceRegistryBuilder被弃用**
  2. [Java实现] 图片择优(选择最清楚的图片)
  3. SpringBoot项目以服务器方式启动
  4. wdlinux 安装apc扩展
  5. 从0到1,关于产品冷启动阶段。
  6. Python基础教程:自定义函数
  7. C语言中assert()断言函数的概念及用法
  8. Elasticsearch索引自动删除
  9. Git submodule 的笔记
  10. 前端学习(3000):vue+element今日头条管理--远程仓库的issue
  11. 【R】语言第二课----- 变量的使用方法
  12. 如何自动填充网页表单_流量型称重型充绒机充棉机如何选择,教你轻松辨别全自动填充机器...
  13. Dart语言——45分钟快速入门(下)
  14. 蓝桥杯 ADV-82 算法提高 填充蛋糕
  15. vue-cli 2.x 项目优化之:引入本地静态库文件
  16. MATLAB 绘制折线图
  17. [ROS学习笔记]ROS中使用激光雷达(RPLIDAR)
  18. 神州数码web登录方式
  19. 对多元函数微分一些思考和总结
  20. c语言ifi=1 2,第1部分_C语言程序设计练习一全解.doc

热门文章

  1. python insert_Python列表| 带示例的insert()方法
  2. Java ObjectInputStream readDouble()方法与示例
  3. 硬核Redis总结,看这篇就够了!
  4. 附录:更多有序集合操作命令
  5. 安卓安装kali linux之Termux
  6. python爬虫lxml xpath测试
  7. Pyalgotrade量化交易回测框架
  8. Linux安装后初始优化步骤(仅适用于CentOS、RedHat)
  9. smbd的安装与使用
  10. linux下boost库链接动态库失败