Python练习 (一)

题目来源于这:
https://github.com/Yixiaohan/show-me-the-code
不过我并不是按顺序做的...

第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数。

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env python
#coding:utf-8
import sys
import string
gfile = sys.argv[1]
f = open(gfile)
con = f.read()
con = con.lower()
for x in string.ascii_lowercase:
a = con.count(x)
print x,'Have',a
#开始题目看错了,,,以为是统计字母出现的个数..所以有个这个版本..

下面的就是计算英文文本中单词的出现的次数了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env python
#coding:utf-8
import sys
import string
gfile = sys.argv[1]
al = string.ascii_lowercase

def filt(li):
for x in li:
if x not in al:
li.replace(x,'')
return li
def aad(li):
if li not in neew:
neew.append(li)
f = open(gfile)
con = f.read()
con = con.lower()
con2 = con.split()
neew = []
for x in con2:
if not x.isalpha():
fft = filt(x)
if fft.isalpha():
aad(fft)
else:
aad(x)
print 'This artical hava',neew.__len__(),'words.'
for x in neew:
#print '[%s] ==> %s' %(x,con2.count(x))
#这个代码唯一让我不爽的是最后输出没法对齐...有强迫症的伤不起啊..研究了半天还是没对齐...
amo = 20 - x.__len__()
spa = [' ' for y in range(0,amo)]
spa = ''.join(spa)
print '[%s]%s======> %s' %(x,spa,con2.count(x))
#这样爽多了~~~效果为下第一张图
#还有一种简单的方法,效果为下面第二张图
#print '-' * 28
#print '%-14s | %9s |' %(x,con2.count(x))

附张效果图:
[ 图1 ]
效果图1
[ 图2 ]
效果图2