日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python数字转换_Python实现中文数字转换为阿拉伯数字的方法示例

發布時間:2023/12/1 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python数字转换_Python实现中文数字转换为阿拉伯数字的方法示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例講述了Python實現中文數字轉換為阿拉伯數字的方法。分享給大家供大家參考,具體如下:

一、需求

今天寫了三千二百行代碼。

今天寫了3200行代碼。

兩行意思相同,只是表達方式不太能夠,統一掉。

二、原理

數字的特征是 數字 + 單位,例如三百,四十二,九千零二

可以從后往前遍歷,遇到的是0到9的數字,就乘以前一位的單位,遇到新的單位(十百千萬)就替換成數字供下一個數字用。

三、舉例

五百四十三

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

四、參考代碼

#-*- coding: cp936 -*-

import re

import string

common_used_numerals_tmp ={'零':0, '一':1, '二':2, '兩':2, '三':3, '四':4, '五':5, '六':6, '七':7, '八':8, '九':9, '十':10, '百':100, '千':1000, '萬':10000, '億':100000000}

common_used_numerals = {}

for key in common_used_numerals_tmp:

common_used_numerals[key.decode('cp936')] = 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('兩百三十二'.decode('cp936'))

print "-------------------------"

print chinese2digits('十二'.decode('cp936'))

print "-------------------------"

print chinese2digits('一億零八萬零三百二十三'.decode('cp936'))

結果:

PS:這里再為大家提供幾款數字轉換相關工具供大家參考使用:

希望本文所述對大家Python程序設計有所幫助。

總結

以上是生活随笔為你收集整理的python数字转换_Python实现中文数字转换为阿拉伯数字的方法示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。