话不多说,看题:
题目描述: 读入两个小于100的正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出.
输入:
测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出.
输出: 对每个测试用例输出1行,即A+B的值. 样例输入:
one + two = three four + five six = zero seven + eight nine = zero + zero =样例输出:
3 90 96参考代码:
#encoding:utf-8 """ 题目描述: 读入两个小于100的正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出. 输入: 测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出. 输出: 对每个测试用例输出1行,即A+B的值. 样例输入: one + two = three four + five six = zero seven + eight nine = zero + zero = """ def changeTonum(str): numdata = [] datas = ['zero','one','two','three','four','five','six','seven','eight','nine','ten'] numdatas = str.split(" + ") numdata.append(numdatas[0].split(" ")) numdata.append(numdatas[1].split(" ")) #print(numdata) #注意这里,把所有单数输入情况转换为双数即[['one'],['two']]转化为[['zero','one'],['zero','two']] if len(numdata[0]) == 1: numdata[0].insert(0,'zero') if len(numdata[1]) == 1: numdata[1].insert(0,'zero') sum =(datas.index(numdata[0][0]) * 10)+datas.index(numdata[0][1])+\ (datas.index(numdata[1][0]) * 10)+datas.index(numdata[1][1]) return sum data = [] results = [] #存放第一行到倒数第二行输入的计算结果 while True: temp = input().strip(' =') data.append(temp) if temp == 'zero + zero': #输入结束标志 break for i in range(len(data)-1): #最后一个zero+zero元素不考虑 result = changeTonum(data[i]) results.append(result) for i in results: print(i)