#原题在最后
while True:
    try:
        print(int(input())+int(input()))
    except:
        break
极简,然显然不符题意,只是体现python之实用
另一种方法稍长,考虑了输入为正和负的情况:
def add(s1,s2):
    maxlen = max(len(s1),len(s2))
    s1 = s1.rjust(maxlen,'0') 
    s2 = s2.rjust(maxlen,'0')
    rst = ''
    carry = 0
    for i in range(maxlen-1,-1,-1):
        val = (int(s1[i])+int(s2[i])+carry)%10
        carry = (int(s1[i])+int(s2[i])+carry)//10
        rst = str(val)+rst
    if carry == 1:
        rst = '1'+rst
    return rst

def minus(s1,s2):
    #abs(s1)>abs(s2)
    maxlen = len(s1)
    s2 = s2.rjust(maxlen,'0')
    rst = ''
    carry = 0
    for i in range(maxlen-1,-1,-1):
        if int(s1[i])+carry>=int(s2[i]):
            rst = str(int(s1[i])+carry-int(s2[i]))+rst
            carry = 0
        else:
            rst = str(int(s1[i])+carry+10-int(s2[i]))+rst
            carry = -1
    while rst[0]=='0':
        rst = rst[1:]
    return rst

def f1(s1,s2):
    if s1[0] in '0123456789':
        flag1 = '+'
    else:
        flag1 = s1[0]
        s1 = s1[1:]
    if s2[0] in '0123456789':
        flag2 = '+'
    else:
        flag2 = s2[0]
        s2 = s2[1:]
    if flag1==flag2:
        if flag1=='+':
            return add(s1,s2)
        else:
            return  flag1+add(s1,s2)
    else:
        len1,len2 = len(s1),len(s2)
        if len1>len2:
            rst = flag1+minus(s1,s2)
        elif len1<len2: else&#58;="" i="" rst="flag2&#43;minus&#40;s2&#44;s1&#41;" while=""><len1>int(s2[i]):
                rst = flag1+minus(s1,s2)
            else:
                rst = flag2+minus(s2,s1)
        if rst[0]=='+':
            rst = rst[1:]
        return rst 
  
while True:
    try:
        a = input().split()
        b = input().split()
        print(add(a[0],b[0]))
    except:
        break</len1></len2:>
原题如下:

描述

输入两个用字符串表示的整数,求它们所表示的数之和。
字符串的长度不超过10000。
本题含有多组样例输入。

输入描述:

输入两个字符串。保证字符串只含有'0'~'9'字符

输出描述:

输出求和后的结果