Re: [閒聊] 數字翻譯成英文

看板Python作者 (...)時間13年前 (2012/04/13 22:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
感謝分享, 你寫得漂亮很多 :) 說老實話我看到題目時沒甚麼頭緒 我的策略是: 1.如果能實作出atom的部分(個位,十位,百位等), 可以累積建構更高層的經驗 2.先前建構的底層可以在建構高層時作為模塊來使用 所以最後寫得比較冗長... Paul Graham 的說法可見: http://www.paulgraham.com/hundred.html http://www.paulgraham.com/avg.html 我的理解是, 令人炫目的複雜度可由一層層底層支撐高層來獲得 每往上一層都有一些部件被模組化, 提供更高階的抽象, 從而獲得更強大的能力 complexity atom 蟻群對環境的適應力 --> 個別螞蟻 大腦與認知世界的同構 --> 神經元 高階語言 --> 機器語言指令集 cPython --> C ※ 引述《darkgerm (黑駿)》之銘言: : ※ 引述《beatitude (...)》之銘言: : : 前陣子看到一個公司的面試考題: http://i.imgur.com/ETTIS.png
: : 覺得有趣就做了一下 : : 看到比較抽象的函數建構在比較基礎的函數之上, : : 最終得到可以翻譯任意長度數字的能力, : : 還滿震驚的... : : 讓我想到 Paul Graham 談論 Lisp 時的論點 : 什麼論點?可以分享一下嗎>"< : 另外你的程式有小 bug 喔 : input output : 0 '' : 100 'one hundred, ' : 我自己也寫了一個版本,希望大家也可以幫我測測看有沒有 bug : 也希望能拋磚引玉,看到其他更多更好的做法 : number = ['','one','two','three','four','five', : 'six','seven','eight','nine','ten', : 'eleven','twelve','thirteen','fourteen','fifteen', : 'sixteen','seventeen','eighteen','nineteen'] : number10 = ['','ten','twenty','thirty','forty','fifty', : 'sixty','seventy','eighty','ninty'] : def convert(n): # -> string : if(n==0): return 'zero' : result = '' : if n>=1000: : result += convert(n/1000) + ' thousand, ' : n %= 1000 : if n>=100: : result += number[n/100] + ' hundred, ' : n %= 100 : if n>=20: : result += number10[n/10] + ' ' : n %= 10 : result += number[n] : # delete the trail ',' and ' ' : if result[-1] == ' ': : result = result[:-1] : if result[-1] == ',': : result = result[:-1] : return result -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.153.93
文章代碼(AID): #1FY3LvjR (Python)
文章代碼(AID): #1FY3LvjR (Python)