[闲聊] Mushclient中文数字转阿拉伯数字Python版

楼主: rsliang (rsliang)   2015-09-18 02:22:27
这个是刚好看到Mushclient有支援Python的script,闲闲无事拿来玩玩看的成果,
理论上是没有bug啦,有的话请和我说,我再修修看,目前还是弱弱的Python新手。
说明:
一、__init__底下宣告的对应数字使用dict有更漂亮的写法,刚开始写的时候没想
到,写完了才想起来,所以就懒得改了。
二、纯练Python用,很多地方的逻辑绕很多圈或是有多余的宣告,请鞭小力一点:p
=================================Code====================================
import os,sys
class chs2num:
def __init__(self):
self.money = None
self.total = 0
self.num = 0
self.hunmillion = 100000000
self.tenthousand = 10000
self.thousand = 1000
self.hundred = 100
self.ten = 10
self.one = 1
self.two = 2
self.three = 3
self.four = 4
self.five = 5
self.six = 6
self.seven = 7
self.eight = 8
self.nine = 9
self.zero = 0
self.curnum = 0
def tonum(self, money):
self.money = money.decode('utf-8')
for self.num in range(0, len(self.money)):
world.Note(self.money[self.num])
if self.money[self.num] == u"一":
self.curnum = self.one
world.Note(self.curnum)
elif self.money[self.num] == u"二" or
(self.money[self.num] == u"两" and self.num != (len(self.money) - 1)):
self.curnum = self.two
elif self.money[self.num] == u"三":
self.curnum = self.three
elif self.money[self.num] == u"四":
self.curnum = self.four
elif self.money[self.num] == u"五":
self.curnum = self.five
elif self.money[self.num] == u"六":
self.curnum = self.six
elif self.money[self.num] == u"七":
self.curnum = self.seven
elif self.money[self.num] == u"八":
self.curnum = self.eight
elif self.money[self.num] == u"九":
self.curnum = self.nine
elif self.money[self.num] == u"零":
self.curnum = self.zero
elif self.money[self.num] == u"十":
if self.curnum == 0:
self.total = self.total + self.ten
else:
self.total = self.total + self.curnum * self.ten
self.curnum = 0
elif self.money[self.num] == u"百":
self.total = self.total + self.curnum * self.hundred
self.curnum = 0
elif self.money[self.num] == u"千":
self.total = self.total + self.curnum * self.thousand
self.curnum = 0
elif self.money[self.num] == u"万":
if self.curnum == 0:
self.total = self.total * self.tenthousand
else:
self.total = (self.total + self.curnum) * self.tenthousand
self.curnum = 0
elif self.money[self.num] == u"亿":
if self.curnum == 0:
self.total = self.total * self.hunmillion
else:
self.total = (self.total + self.curnum) * self.hunmillion
self.curnum = 0
if self.num == (len(self.money) - 1):
if self.curnum < 10 and self.curnum > 0:
self.total = self.total + self.curnum
return self.total
作者: laechan (挥泪斩马云)   2015-09-19 16:20:00
你还可以增加一个"两"的额外转换

Links booklink

Contact Us: admin [ a t ] ucptt.com