Python에서 중국어 숫자를 아라비아 숫자로 변환하는 방법의 예

黄舟
풀어 주다: 2017-05-28 11:10:12
원래의
5048명이 탐색했습니다.

이 글은 주로 Python한자 숫자를 아라비아 숫자로 변환하는 방법을 소개하며, Python문자열순회 및 변환 관련 연산 기술이 필요한 친구가 참고할 수 있습니다.

이 글의 예는 한자 숫자의 변환을 설명합니다. 아라비아 숫자에 대한 Python 방법. 참고하실 수 있도록 공유해 드리며, 자세한 내용은 다음과 같습니다.

1. 수요

今天写了三千二百行代码。
今天写了3200行代码。
로그인 후 복사

두 줄의 의미는 같지만 표현 방식이 별로 좋지 않으니 통일해야 합니다.

2. 원리

숫자의 특징은 삼백, 사십이, 구천이 등 숫자+단위입니다
뒤에서 앞으로 순회할 수 있으며, 숫자를 만나면 0부터 9, 그냥 이전 단위를 곱하고 다음 숫자에 대한 새 단위(천만, 수억, 수백만)가 나타나면 이를 숫자로 바꾸세요.

3. 예시

五百四十三
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. 참조 코드

#-*- 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;))
로그인 후 복사

결과:

위 내용은 Python에서 중국어 숫자를 아라비아 숫자로 변환하는 방법의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!