国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python實現(xiàn)將英文單詞表示的數(shù)字轉(zhuǎn)換成阿拉伯?dāng)?shù)字的方法

2019-11-25 17:14:25
字體:
供稿:網(wǎng)友

本文實例講述了python實現(xiàn)將英文單詞表示的數(shù)字轉(zhuǎn)換成阿拉伯?dāng)?shù)字的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

import re_known = {  'zero': 0,  'one': 1,  'two': 2,  'three': 3,  'four': 4,  'five': 5,  'six': 6,  'seven': 7,  'eight': 8,  'nine': 9,  'ten': 10,  'eleven': 11,  'twelve': 12,  'thirteen': 13,  'fourteen': 14,  'fifteen': 15,  'sixteen': 16,  'seventeen': 17,  'eighteen': 18,  'nineteen': 19,  'twenty': 20,  'thirty': 30,  'forty': 40,  'fifty': 50,  'sixty': 60,  'seventy': 70,  'eighty': 80,  'ninety': 90  }def spoken_word_to_number(n):  """Assume n is a positive integer".assert _positive_integer_number('nine hundred') == 900assert spoken_word_to_number('one hundred') == 100assert spoken_word_to_number('eleven') == 11assert spoken_word_to_number('twenty two') == 22assert spoken_word_to_number('thirty-two') == 32assert spoken_word_to_number('forty two') == 42assert spoken_word_to_number('two hundred thirty two') == 232assert spoken_word_to_number('two thirty two') == 232assert spoken_word_to_number('nineteen hundred eighty nine') == 1989assert spoken_word_to_number('nineteen eighty nine') == 1989assert spoken_word_to_number('one thousand nine hundred and eighty nine') == 1989assert spoken_word_to_number('nine eighty') == 980assert spoken_word_to_number('nine two') == 92 # wont be able to convert this oneassert spoken_word_to_number('nine thousand nine hundred') == 9900assert spoken_word_to_number('one thousand nine hundred one') == 1901"""  n = n.lower().strip()  if n in _known:    return _known[n]  else:    inputWordArr = re.split('[ -]', n)  assert len(inputWordArr) > 1 #all single words are known  #Check the pathological case where hundred is at the end or thousand is at end  if inputWordArr[-1] == 'hundred':    inputWordArr.append('zero')    inputWordArr.append('zero')  if inputWordArr[-1] == 'thousand':    inputWordArr.append('zero')    inputWordArr.append('zero')    inputWordArr.append('zero')  if inputWordArr[0] == 'hundred':    inputWordArr.insert(0, 'one')  if inputWordArr[0] == 'thousand':    inputWordArr.insert(0, 'one')  inputWordArr = [word for word in inputWordArr if word not in ['and', 'minus', 'negative']]  currentPosition = 'unit'  prevPosition = None  output = 0  for word in reversed(inputWordArr):    if currentPosition == 'unit':      number = _known[word]      output += number      if number > 9:        currentPosition = 'hundred'      else:        currentPosition = 'ten'    elif currentPosition == 'ten':      if word != 'hundred':        number = _known[word]        if number < 10:          output += number*10        else:          output += number      #else: nothing special      currentPosition = 'hundred'    elif currentPosition == 'hundred':      if word not in [ 'hundred', 'thousand']:        number = _known[word]        output += number*100        currentPosition = 'thousand'      elif word == 'thousand':        currentPosition = 'thousand'      else:        currentPosition = 'hundred'    elif currentPosition == 'thousand':      assert word != 'hundred'      if word != 'thousand':        number = _known[word]        output += number*1000    else:      assert "Can't be here" == None  return(output)

希望本文所述對大家的Python程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 上饶县| 闸北区| 吴旗县| 肇源县| 枣强县| 开平市| 安岳县| 深泽县| 长治县| 南郑县| 竹北市| 龙游县| 开原市| 久治县| 内乡县| 乌鲁木齐市| 南部县| 珲春市| 铜梁县| 彰化市| 江川县| 柳河县| 南京市| 怀仁县| 洛川县| 德保县| 普定县| 黑河市| 乐都县| 乳山市| 特克斯县| 福鼎市| 手机| 平和县| 灌云县| 石楼县| 蒙阴县| 喀什市| 乐至县| 乃东县| 扎赉特旗|