作者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