撰寫一個 Python 程式,將數字的英文短語作為字串 s 并輸出相應的整數 x。您可以假設該數字為正數且小于 1,000,000。你也可以假設 s 總是正確的。s 不包含任何空格。
到目前為止,我有我的字典
'# 那些
num2words = {'一':'1','二':2,'三':3,'四':4,'五':5,'六':6,'七':'7','八':8,'九':9}
'# 十
num2words.update({'十':10,'十一':11,'十二':12,'十三':13,'十四':14,'十五':15,'十六':16,'十七' :17,“十八”:18,“十九”:19})
'# 二十九
num2words.update({'二十':'20','三十':'30','四十':40,'五十':50,'六十':60,'七十':70,'八十':80 , '九十':90})
'#百、千、萬、零
num2words.update ({'百':'100', '千':1000, '百萬':1000000, '零':0})
而且我不知道如何開始撰寫這個程式。我已經查找了示例,但字串通常有一個空格或破折號將它們分開,例如(二十七或二十七)而不是(二十七或一百五十六六千三百二十七)只是一些關于如何啟動我的程式的指導將不勝感激。
uj5u.com熱心網友回復:
不確定是否有幫助:也許使用正則運算式來搜索鍵是否匹配?那么二十七和'二十七'將匹配關鍵二十七
import re
txt = "twenty seven"
txt = "twenty-seven"
x = re.search("twenty.*seven", txt)
print(x)
uj5u.com熱心網友回復:
這個模塊https://pypi.org/project/word2number/可以幫助你。它將單詞轉換為數字并回傳。
uj5u.com熱心網友回復:
在我看來,它看起來像兩個單獨的任務a)給定字串的拆分和b)然后從a)的結果生成數字。
a)在這里,您可能應該檢查字串以哪個字典鍵開頭,然后對剩余的字串重復相同的程序,直到完成。string 方法startswith將對此有所幫助。但是請注意一些陷阱,例如 40 或 60,其中 4 和 6 也可以匹配。這些情況需要另外處理。也許有這樣的規則
“只要有幾場比賽,就拿最大的一場。”
(您必須檢查這是否適用于所有選項。)
b)在這里嘗試將您自己處理數字字串的方式轉換為代碼。主要是它的添加,除非你找到 10 的冪,比如百、千或百萬。這將導致乘以找到的十次方的剩余總和。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/522347.html
標籤:Python细绳字典整数
上一篇:如何處理MongodbNull值
