Skip to content

Commit 0043b02

Browse files
committed
Add 0007 file
1 parent 11824ff commit 0043b02

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed

Drake-Z/0007/0007.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
4+
'第 0007 题:有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释,但是要分别列出来。'
5+
6+
__author__ = 'Drake-Z'
7+
8+
import os
9+
import re
10+
11+
def count_num(a, b):
12+
shuzi = [0, 0, 0]
13+
path = os.path.join(a, b)
14+
f = open(path, 'r', encoding='UTF-8').readlines()
15+
for i in f:
16+
if re.match(r'^#', i) == None:
17+
pass
18+
else:
19+
shuzi[1] += 1 #获得注释行数
20+
if f[-1][-1:]=='\n': #最后一行为空行时
21+
shuzi[2] = f.count('\n')+1 #获得空行行数
22+
shuzi[0] = len(f)+1 - shuzi[2] - shuzi[1] #获得代码行数
23+
else:
24+
shuzi[2] = f.count('\n')
25+
shuzi[0] = len(f) - shuzi[2] - shuzi[1]
26+
return shuzi
27+
28+
def file_analysis(c, d):
29+
py = [x for x in os.listdir(c) if os.path.splitext(x)[1]==d] #获得文件列表
30+
print(py)
31+
the_num = [0, 0, 0]
32+
for i in py:
33+
num = count_num(c, i)
34+
the_num[0] += num[0] #累计
35+
the_num[1] += num[1]
36+
the_num[2] += num[2]
37+
print('''统计得目录中:
38+
代码有 %s 行
39+
注释 %s 行
40+
空行 %s 行''' % (the_num[0], the_num[1], the_num[2]))
41+
42+
if __name__ == '__main__':
43+
file = '.'
44+
ext = '.py'
45+
file_analysis(file, ext)

Drake-Z/0007/test.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# -*- coding: utf-8 -*-
2+
# mydict_test.py
3+
4+
import unittest
5+
from MyMoudel.Moudel1 import Dict
6+
class TestDict(unittest.TestCase):
7+
8+
def test_init(self):
9+
d = Dict(a=1, b='test')
10+
self.assertEqual(d.a, 1)
11+
self.assertEqual(d.b, 'test')
12+
self.assertTrue(isinstance(d, dict))
13+
14+
def test_key(self):
15+
d = Dict()
16+
d['key'] = 'value'
17+
self.assertEqual(d.key, 'value')
18+
19+
def test_attr(self):
20+
d = Dict()
21+
d.key = 'value'
22+
self.assertTrue('key' in d)
23+
self.assertEqual(d['key'], 'value')
24+
25+
def test_keyerror(self):
26+
d = Dict()
27+
with self.assertRaises(KeyError):
28+
value = d['empty']
29+
30+
def test_attrerror(self):
31+
d = Dict()
32+
with self.assertRaises(AttributeError):
33+
value = d.empty
34+
35+
def setUp(self):
36+
print('setUp...')
37+
38+
def tearDown(self):
39+
print('tearDown...')
40+
if __name__ == '__main__':
41+
unittest.main()

0 commit comments

Comments
 (0)