Python 練習(xí)題

  1. 2^15 = 32768 然后這個(gè)數(shù)的每個(gè)數(shù)字加起來(lái)是 3 + 2 + 7 + 6 + 8 = 26.
    那么 2^1000的得數(shù)的所有數(shù)字和加起來(lái)是多少呢?
a = sum(int(i) for i in str(pow(2, 15)))
print(a)
b = sum(int(i) for i in str(pow(2, 1000)))
print(b)
運(yùn)行結(jié)果: 26
1366
  1. 如果數(shù)字1到5用英語(yǔ)寫出:one, two, three, four, five偷线,則總共使用3 + 3 + 5 + 4 + 4 = 19個(gè)字母摇零。如果所有1到1001(包含一千零一)的數(shù)字都用英語(yǔ)寫出來(lái)推掸,會(huì)用多少個(gè)字母?
    解題思路:
    1) 判斷是否是數(shù)字
    2) 判斷是否在100以內(nèi)驻仅, 1-20必須用字典定義谅畅, 百以內(nèi)的整數(shù)必須定義字典和其對(duì)應(yīng)的英文,
one_to_nine = {1: 'One', 2: 'Two', 3: 'Three', 4: 'Four', 5: 'Five', 6: 'Six', 7: 'Seven', 8: 'Eight', 9: 'Nine',
               0: 'Zero', 10: 'Ten', 11: 'Eleven', 12: 'Twelve', 13: 'Thirteen', 14: 'Fourteen', 15: 'Fifteen',
               16: 'Sixteen', 17: 'Seventeen', 18: 'Eighteen', 19: 'Nineteen'}
number_ty = {20: 'Twenty', 30: 'Thirty', 40: 'Fourty', 50: 'Fifty', 60: 'Sixty', 70: 'Seventy', 80: 'Eighty',
             90: 'Ninety', 100: 'Hundred', 1000: 'Thousand'}

一百以內(nèi)的函數(shù)定義:

def determine_in_hundred(num):
    if (num >= 0) and (num < 20):
        number_word = one_to_nine.get(num)
    elif num < 100:
        ten_dig = num // 10
        word_one = number_ty.get(ten_dig * 10)
        ge_dit = num % 10
        if ge_dit == 0:
            number_word = word_one
        else:
            word_two = one_to_nine.get(ge_dit)
            number_word = word_one + '-' + word_two
    return number_word
  1. 判斷是否在100-1000之間噪服,獲取千位上的英文并且調(diào)用還是那個(gè)面定義的百以內(nèi)的函數(shù)
def determine_in_thousand(num):
    if num % 100 == 0:
        number_word = one_to_nine.get(num // 100) + ' hundred'
    else:
        number_word = one_to_nine.get(num // 100) + ' hundred and ' + determine_in_hundred(num % 100)
    return number_word

以下是完整判斷數(shù)字并調(diào)用不同代碼的函數(shù):

def tanslate_number_to_word(num):
    if num < 100:
        number_word = determine_in_hundred(num)
    elif num < 1000:
        number_word = determine_in_thousand(num)
    elif num < 10000:
        if num % 1000 == 0:
            number_word = one_to_nine.get(num // 1000) + ' thousand '
        else:
            number_word = one_to_nine.get(num//1000) + ' thousand and ' + determine_in_thousand(num % 1000)
    return number_word

程序的主函數(shù)如下毡泻,這里需要去除每個(gè)返回?cái)?shù)字英文之間的空格符號(hào),在累加計(jì)算總長(zhǎng)度粘优。
去除字符串中的空格 -> 1) 使用replace函數(shù): replace(' ', '')仇味; 2)使用join 函數(shù):''.join(str.split(' '))呻顽,3) 使用正則表達(dá)式re.sub實(shí)現(xiàn)字符串替換, re_comp = re.compile(' '), re_comp.sub('',str)

if __name__ == '__main__':

    inputt = input("please input a number:").strip()  # 去除字符串前后的空格
    tol_length = 0
    # 判斷是否為數(shù)字,
    if inputt.isnumeric():  # or inputt.isdigit()/ inputt.isdecimal()
        print('you entered ', inputt)
        num = int(inputt)
        for each_num in range(num):
            word = tanslate_number_to_word(each_num)
            print(''.join(word.split(' ')), word.replace(' ', ''), re.compile(' ').sub('', word))
            tol_length += len(word.replace(' ', ''))
        print('total length:', tol_length)  # 24632  21948
    else:
        print('please enter number again')

運(yùn)行結(jié)果: total length: 21948
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末丹墨,一起剝皮案震驚了整個(gè)濱河市廊遍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贩挣,老刑警劉巖喉前,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異王财,居然都是意外死亡卵迂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門绒净,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)狭握,“玉大人,你說(shuō)我怎么就攤上這事疯溺÷勐” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵囱嫩,是天一觀的道長(zhǎng)恃疯。 經(jīng)常有香客問(wèn)我,道長(zhǎng)墨闲,這世上最難降的妖魔是什么今妄? 我笑而不...
    開(kāi)封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮鸳碧,結(jié)果婚禮上盾鳞,老公的妹妹穿的比我還像新娘。我一直安慰自己瞻离,他們只是感情好腾仅,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著套利,像睡著了一般推励。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肉迫,一...
    開(kāi)封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天验辞,我揣著相機(jī)與錄音,去河邊找鬼喊衫。 笑死跌造,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的族购。 我是一名探鬼主播壳贪,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼财著,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了撑碴?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤朝墩,失蹤者是張志新(化名)和其女友劉穎醉拓,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體收苏,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡亿卤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鹿霸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片排吴。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖懦鼠,靈堂內(nèi)的尸體忽然破棺而出钻哩,到底是詐尸還是另有隱情,我是刑警寧澤肛冶,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布街氢,位于F島的核電站,受9級(jí)特大地震影響睦袖,放射性物質(zhì)發(fā)生泄漏珊肃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一馅笙、第九天 我趴在偏房一處隱蔽的房頂上張望伦乔。 院中可真熱鬧,春花似錦董习、人聲如沸烈和。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)斥杜。三九已至,卻和暖如春沥匈,著一層夾襖步出監(jiān)牢的瞬間蔗喂,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工高帖, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缰儿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓散址,卻偏偏與公主長(zhǎng)得像乖阵,于是被迫代替她去往敵國(guó)和親宣赔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容