Re: [問題] decode文件

看板Python作者 (taco)時間15年前 (2009/11/28 05:03), 編輯推噓4(4013)
留言17則, 1人參與, 最新討論串2/3 (看更多)
先感謝上次大家回答我的問題!! 感謝大家包容我問題都問不清楚... (因為我自己也弄得有點亂~ @@) 不過我相信我這次的問題應該很清楚 而且會是一個非常簡單的問題 (可是我怎麼改都改不出正確的來 囧) 現在問題卡在出現機率上 我現在把上次的程式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

11/28 06:36, , 1F
你的那一串for大有問題 請做unit test
11/28 06:36, 1F

11/28 06:37, , 2F
letters="abcdefg....wxyz" 就好了 不必用dict用那麼辛苦
11/28 06:37, 2F

11/28 06:41, , 3F
for word in word.lower(): 這個就炸了 word蓋掉word..
11/28 06:41, 3F

11/28 06:41, , 4F
應該是下一層直接用word.lower().format():
11/28 06:41, 4F

11/28 06:42, , 5F
最裡面的else:似乎沒有存在的意義?
11/28 06:42, 5F

11/28 06:42, , 6F
然後你檔案open了兩次 一次沒有close
11/28 06:42, 6F

11/28 06:43, , 7F
你可以在迴圈最裡面把字元印出來 確定每個字都有跑到
11/28 06:43, 7F

11/28 06:45, , 8F
我好像沒有看到decode.Letter()的定義啊@@"
11/28 06:45, 8F

11/28 06:46, , 9F
啊 我腦殘了 那是class自己..
11/28 06:46, 9F

11/28 06:46, , 10F
顯然是該睡了...
11/28 06:46, 10F

11/28 06:52, , 11F
.split()那層應該也可以不要了 裡面的if count.has_key
11/28 06:52, 11F

11/28 06:52, , 12F
也是會處理掉spaces
11/28 06:52, 12F

11/28 06:53, , 13F
for c in line:
11/28 06:53, 13F

11/28 06:53, , 14F
錯了= = for c in line.lower().format():
11/28 06:53, 14F

11/28 06:54, , 15F
try: count[c]+=1
11/28 06:54, 15F

11/28 06:54, , 16F
except: pass
11/28 06:54, 16F

11/28 06:55, , 17F
你這裡沒有需要tokenize 就直接取字元就好啦
11/28 06:55, 17F
文章代碼(AID): #1B43wS6R (Python)
討論串 (同標題文章)
以下文章回應了本文
2
5
完整討論串 (本文為第 2 之 3 篇):
2
5
文章代碼(AID): #1B43wS6R (Python)