現(xiàn)在有一個(gè)列表,長(zhǎng)度不固定,
如 [2, 100, 3, 10, 4]
長(zhǎng)度為 5 的列表
則有 長(zhǎng)度減一 的操作符,規(guī)則如下:
[4]
, 輸出為 4[]
, 輸出結(jié)果為 0 * 列表 [10, 2]
, 輸出結(jié)果為 10 + 2 = 12
* 列表 [2, 10]
, 輸出結(jié)果為 2 * 10 = 20
最后效果如下:
2 * 100 + 3 * 10 + 4 = 234
求該表達(dá)式的和, 如何用 python 代碼實(shí)現(xiàn)
ps:
當(dāng)?shù)谝粋€(gè)比較數(shù)為 0 時(shí),則和后面的數(shù)相加
[2, 100, 0, 5]
預(yù)期結(jié)果是:
2 * 100 + 0 + 5 = 205
我想做的一個(gè)函數(shù)就是把中文數(shù)字變?yōu)樾憯?shù)字,如:
錯(cuò)誤結(jié)果:
def foo(s):
if not s:
return 0
length = len(s)
if length == 1:
return s[0]
exp = '(' + str(s[0]) + ')'
for i in range(1, length):
if s[i-1] < s[i] and s[i-1] != 0:
op = '*'
else:
op = '+'
exp = exp + op + '(' + str(s[i]) + ')'
print(eval(exp))
>>> foo([4])
4
>>> foo([])
0
>>> foo([10, 2])
12
>>> foo([2, 10])
20
>>> foo([2, 100, 3, 10, 4])
234
>>> foo([2, 100, 0, 5])
205
>>> foo([-3, -10, -1])
7
中文數(shù)字轉(zhuǎn)阿拉伯?dāng)?shù)字(遞歸版本)
d = { '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9}
def _trans(s):
num = 0
if s:
idx_q, idx_b, idx_s = s.find('千'), s.find('百'), s.find('十')
if idx_q != -1:
num += d[s[idx_q-1:idx_q]] * 1000
if idx_b != -1:
num += d[s[idx_b-1:idx_b]] * 100
if idx_s != -1:
# 一十的一可被省略
num += d.get(s[idx_s-1:idx_s], 1) * 10
if s[-1] in d:
num += d[s[-1]]
return num
def trans(chn):
chn = chn.replace('零', '')
idx_y = chn.rfind('億')
idx_w = chn.rfind('萬')
if idx_y > idx_w:
idx_w = -1
num_y = 100000000
num_w = 10000
if idx_y != -1 and idx_w != -1:
return trans(chn[:idx_y])*num_y + _trans(chn[idx_y+1:idx_w])*num_w + _trans(chn[idx_w+1:])
elif idx_y != -1:
return trans(chn[:idx_y])*num_y + _trans(chn[idx_y+1:])
elif idx_w != -1:
return _trans(chn[:idx_w])*num_w + _trans(chn[idx_w+1:])
return _trans(chn)
print(1,trans('一萬億二千一百萬零一百零一')) # 1000021000101
print(2,trans('一萬億零二千一百零一')) # 1000000002101
print(3,trans('二千一百零一')) # 2101
print(4,trans('三十五萬六千一百')) # 356100
print(5,trans('二億三十萬六千一百')) # 200306100
print(6,trans('二億億三十萬六千一百')) # 20000000000306100
print(7,trans('十')) # 10
print(8,trans('三百零五')) # 305
print(9,trans('一億零二百三十萬億四千零五十六萬七千八百九十')) # 10230000040567890
def sum(l):
res, t = 0, 1
for i in range(1, len(l)):
t *= l[i - 1]
if l[i - 1] >= l[i] or l[i - 1] is 0:
res, t = res + t, 1
return (res + t * l[-1]) if l else 0
d = {'': 0, '百': 100, '零': 0, '一': 1, '萬': 10000, '五': 5, '三': 3, '六': 6, '九': 9, '四': 4, '十': 10, '七': 7, '千': 1000, '二': 2, '億': 100000000, '八': 8}
sum([d[i] for i in '二億三十萬六千一百'])
sum([d[i] for i in '三十五萬六千一百']) # [3, 10, 5, 10000, 6, 1000, 1, 100] 56130不正確
def change(s):
res = 0
for j in '億萬千百':
if j in s:
l = s.split(j)
for i in l:
res = res * d[j] + change(i)
return res
if '十' in s:
l = s.split('十')
if not l[0]:
return 10 + d[l[1]]
else:
return 10 * change(l[0]) + d[l[1]]
return d[s[1]] if '零' in s else d[s]
change('三十五萬六千一百') 356100
change('二億三十萬六千一百') 200306100
change('二億億三十萬六千一百') 20000000000306100
change('十一') 11
change('三百零五') 305
change('一億零二百三十萬億四千零五十六萬七千八百零九十') 10230000040567890
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。