Python编程基础题(23-A+B加强版)

Description
读入两个正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出.

Input
测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出.

Output
对每个测试用例输出1行,即A+B的值.

Sample Input

one + two =
three four + five six =
zero seven + eight nine =
zero + zero =

Sample Output

3
90
96

参考程序:

dic={'zero':0,'one':1,'two':2,'three':3,'four':4,'five':5,'six':6,'seven':7,
     'eight':8,'nine':9}

def GetNum(ls):
    tot=len(ls)
    s=0
    for i in range(len(ls)):
        s+=10**(tot-i-1)*dic[ls[i]]
    return s

while True:
    exp=input()
    exp=exp[:-2]#去掉表达式最后面的空格和等号
    A,B=exp.split("+")#分离A,B
    A=A.strip(" ")#去掉字符串两边多余的空格
    B=B.strip(" ")
    lsA=A.split()#将组成A的各位数字的英文单词提取出来,存入列表
    lsB=B.split()
    a=GetNum(lsA)
    b=GetNum(lsB)
    if a==0 and b==0:
        break
    else:
        print(a+b)

'''
three four three four + zero =
3434
'''

本题难点在于逐层提取出表示数字的英文单词,需要运用字符串的常用方法如split,strip等。保存英文单词和数字的对应关系用字典实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值