python2 中文小写数字转换成阿拉伯数字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | def dig2chars(s): """ 五百一十二 -->512 一三二 --> 132 """ # 使用unicode编码 fl = unicode ( str (s).decode( 'gbk' ).encode( 'utf-8' ), 'utf-8' ) # 先把数字提取 part = re. compile (r '[〇一二三四五六七八九十百]' .decode( 'utf-8' )) fl = part.findall(fl) fl = ''.join(fl) # 没有百十千是另一种方法处理 part2 = re. compile (r '[〇一二三四五六七八九]' .decode( 'utf-8' )) res2 = part2.findall(fl) result = 0 res_str = '' r = 1 fl_l = list ( unicode ( str (fl), 'utf-8' )) china_dig = {u '〇' : 0 , u '一' : 1 , u '二' : 2 , u '三' : 3 , u '四' : 4 , u '五' : 5 , u '六' : 6 , u '七' : 7 , u '八' : 8 , u '九' : 9 , u '十' : 10 , u '百' : 100 } # 反向遍历 if u '十' in fl_l or u '百' in fl_l: for i in range ( len (fl_l) - 1 , - 1 , - 1 ): val = china_dig.get(fl_l[i]) if val: # 处理十三 十四 if val > = 10 and i = = 0 : if val > r: r = val result = result + val else : r = r * val elif val > = 10 : if val > r: r = val else : r = r * val else : result = result + r * val elif res2: for i in range ( len (fl_l)): val = china_dig.get(fl_l[i]) if val: res_str + = str (val) result = res_str else : result = s else : result = s return result |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)