python字母频率_python中的字母频率

我需要制作一个打印文本中字母频率的程序

file并将该频率与python中的另一个频率进行比较.

到目前为止,我能够打印出一封信的次数,但是

我得到的百分比频率是错误的.我认为这是因为我只需要计算我的程序

通过删除所有空格和其他空格来删除文件中的字母数

字符.

def addLetter (x):

result = ord(x) - ord(a)

return result

#start of the main program

#prompt user for a file

while True:

speech = raw_input("Enter file name:")

wholeFile = open(speech, 'r+').read()

lowlet = wholeFile.lower()

letters= list(lowlet)

alpha = list('abcdefghijklmnopqrstuvwxyz')

n = len(letters)

f = float(n)

occurrences = {}

d = {}

#number of letters

for x in alpha:

occurrences[x] = letters.count(x)

d[x] =(occurrences[x])/f

for x in occurrences:

print x, occurrences[x], d[x]

这是输出

Enter file name:dems.txt

a 993 0.0687863674148

c 350 0.0242449431976

b 174 0.0120532003325

e 1406 0.0973954003879

d 430 0.0297866444999

g 219 0.015170407315

f 212 0.0146855084511

i 754 0.0522305347742

h 594 0.0411471321696

k 81 0.00561097256858

j 12 0.000831255195345

m 273 0.0189110556941

l 442 0.0306178996952

o 885 0.0613050706567

n 810 0.0561097256858

q 9 0.000623441396509

p 215 0.0148933222499

s 672 0.0465502909393

r 637 0.0441257966196

u 305 0.021127736215

t 1175 0.0813937378775

w 334 0.0231366029371

v 104 0.00720421169299

y 212 0.0146855084511

x 13 0.000900526461624

z 6 0.000415627597672

Enter file name:

程序打印在列中,但我不确定如何在此处显示.

“a”的频率应为.0878

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值