作者tacosung (taco)
看板Python
标题Re: [问题] decode文件
时间Sat Nov 28 05:03:21 2009
先感谢上次大家回答我的问题!!
感谢大家包容我问题都问不清楚...
(因为我自己也弄得有点乱~ @@)
不过我相信我这次的问题应该很清楚
而且会是一个非常简单的问题
(可是我怎麽改都改不出正确的来 囧)
现在问题卡在出现机率上
我现在把上次的程式import之後
>>> import decode
>>> x = decode.Letter()
>>> x.count_letter()
>>> freqs = x.count_letter()
>>> for letter in freqs:
possible = freqs[letter]/sum(freqs.values())
print letter, ": ", possible
这样写的话 跑出来的答案都会变成0
可是我改了好久~
还是不知道要改成怎样才能跑出我要的机率(每个字母)
所以只好很厚颜的再跑上来跟大家求救 T^T
感谢大家 (请鞭小力点.....)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 188.74.80.167
1F:推 buganini:你的那一串for大有问题 请做unit test 11/28 06:36
2F:→ buganini:letters="abcdefg....wxyz" 就好了 不必用dict用那麽辛苦 11/28 06:37
3F:推 buganini:for word in word.lower(): 这个就炸了 word盖掉word.. 11/28 06:41
4F:→ buganini:应该是下一层直接用word.lower().format(): 11/28 06:41
5F:→ buganini:最里面的else:似乎没有存在的意义? 11/28 06:42
6F:→ buganini:然後你档案open了两次 一次没有close 11/28 06:42
7F:→ buganini:你可以在回圈最里面把字元印出来 确定每个字都有跑到 11/28 06:43
8F:推 buganini: 我好像没有看到decode.Letter()的定义啊@@" 11/28 06:45
9F:→ buganini:啊 我脑残了 那是class自己.. 11/28 06:46
10F:→ buganini:显然是该睡了... 11/28 06:46
11F:推 buganini:.split()那层应该也可以不要了 里面的if count.has_key 11/28 06:52
12F:→ buganini:也是会处理掉spaces 11/28 06:52
13F:→ buganini:for c in line: 11/28 06:53
14F:→ buganini:错了= = for c in line.lower().format(): 11/28 06:53
15F:→ buganini: try: count[c]+=1 11/28 06:54
16F:→ buganini: except: pass 11/28 06:54
17F:→ buganini:你这里没有需要tokenize 就直接取字元就好啦 11/28 06:55