Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für die Konvertierung chinesischer Zahlen in arabische Zahlen in Python

Beispiel für die Konvertierung chinesischer Zahlen in arabische Zahlen in Python

黄舟
黄舟Original
2017-05-28 11:10:125051Durchsuche

In diesem Artikel wird hauptsächlich die Python-Methode zum Konvertieren chinesischer Zahlen in arabische Ziffern vorgestellt, die PythonString erfordert. Freunde, die sie benötigen, können sich darauf beziehen

Das Beispiel in diesem Artikel beschreibt die Methode zur Konvertierung chinesischer Zahlen in arabische Zahlen in Python. Teilen Sie es allen als Referenz mit. Die Details lauten wie folgt:

1. Nachfrage

今天写了三千二百行代码。
今天写了3200行代码。

Die beiden Zeilen haben das Gleiche Bedeutung, aber sie werden auf unterschiedliche Weise ausgedrückt. Ja, vereinen Sie sie.

2. Prinzip

Die Merkmale von Zahlen sind Zahlen + Einheiten, wie zum Beispiel dreihundert, zweiundvierzig, neuntausendzwei
Sie können von hinten nach vorne blättern. Wenn Sie auf eine Zahl von 0 bis 9 stoßen, multiplizieren Sie diese mit der vorherigen Einheit. Wenn Sie auf eine neue Einheit (zig Millionen) stoßen, ersetzen Sie diese durch eine Zahl für die nächste Zahl.

3. Beispiele

五百四十三
1. 三-->3 3 <10 : total = 3
2. 十-->10, 10 ≥10,且不为0 : r = 10
3. 四-->4, 4<10 : total = 3 + 4*10 = 43
4. 百-->100, 10 0≥10,且不为0 : r = 100
5. 五-->5, 5<10 : total = 43 + 5*100 = 543

4. Referenzcode

#-*- coding: cp936 -*-
import re
import string
common_used_numerals_tmp ={&#39;零&#39;:0, &#39;一&#39;:1, &#39;二&#39;:2, &#39;两&#39;:2, &#39;三&#39;:3, &#39;四&#39;:4, &#39;五&#39;:5, &#39;六&#39;:6, &#39;七&#39;:7, &#39;八&#39;:8, &#39;九&#39;:9, &#39;十&#39;:10, &#39;百&#39;:100, &#39;千&#39;:1000, &#39;万&#39;:10000, &#39;亿&#39;:100000000}
common_used_numerals = {}
for key in common_used_numerals_tmp:
  common_used_numerals[key.decode(&#39;cp936&#39;)] = common_used_numerals_tmp[key]
def chinese2digits(uchars_chinese):
  total = 0
  r = 1              #表示单位:个十百千...
  for i in range(len(uchars_chinese) - 1, -1, -1):
    val = common_used_numerals.get(uchars_chinese[i])
    if val >= 10 and i == 0:  #应对 十三 十四 十*之类
      if val > r:
        r = val
        total = total + val
      else:
        r = r * val
        #total =total + r * x
    elif val >= 10:
      if val > r:
        r = val
      else:
        r = r * val
    else:
      total = total + r * val
  return total
print chinese2digits(&#39;两百三十二&#39;.decode(&#39;cp936&#39;))
print "-------------------------"
print chinese2digits(&#39;十二&#39;.decode(&#39;cp936&#39;))
print "-------------------------"
print chinese2digits(&#39;一亿零八万零三百二十三&#39;.decode(&#39;cp936&#39;))

Ergebnis:

Das obige ist der detaillierte Inhalt vonBeispiel für die Konvertierung chinesischer Zahlen in arabische Zahlen in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn