为什么我不能在python3中通过代码测试?

时间:2016-08-22 09:02:54

标签: python python-3.x

什么 一世 会见 是 下面的代码问题: https://www.patest.cn/contests/pat-a-practise/1001

  

计算a + b并以标准格式输出总和 - 也就是说,数字必须用逗号分隔成三个一组(除非少于四个数字)。

     

输入

     

每个输入文件包含一个测试用例。每个案例包含一对整数a和b,其中-1000000< = a,b< = 1000000.数字用空格分隔。

     

输出

     

对于每个测试用例,您应该在一行中输出a和b的总和。总和必须以标准格式书写。

     

示例输入

     

-1000000 9

     

示例输出

     

-999,991

这是我的代码:

if __name__ == "__main__":
    aline = input()
    astr,bstr = aline.strip().split()
    a,b = int(astr),int(bstr)
    sum = a + b
    sumstr= str(sum)
    result = ''
    while sumstr:
        sumstr, aslice = sumstr[:-3], sumstr[-3:]
        if sumstr:
            result = ',' + aslice + result
        else:
            result = aslice + result

    print(result)

测试结果结果是:

  

时间(时间)结果(测试结果)得分(得分)题目(问题编号)

     

语言(programe language)用时(ms)[time consume]内存(kB)[memory]用户[user]

     

8月22日15:46 部分正确[Partial Correct] (为什么?!!!)11 1001

     

Python(python3 3.4.2)25 3184 polar9527

     

测试点[测试点]结果[结果]用时(ms)[耗时]内存(kB)[记忆]得分[得分] /满分[完全信用]

     

0答案错误[错] 25 3056 0/9

     

1答案正确[正确] 19 3056 1/1

     

10答案正确[正确] 18 3184 1/1

     

11答案正确[正确] 19 3176 1/1

     

2答案正确[正确] 17 3180 1/1

     

3答案正确[正确] 16 3056 1/1

     

4答案正确[正确] 14 3184 1/1

     

5答案正确[正确] 17 3056 1/1

     

6答案正确[正确] 19 3168 1/1

     

7答案正确[更正] 22 3184 1/1

     

8答案正确[正确] 21 3164 1/1

     

9答案正确[正确] 15 3184 1/1

2 个答案:

答案 0 :(得分:3)

我可以给你一个与答案不匹配的简单,当你在输入中输入-1000000,9作为a,b时,你会得到 - ,999,991。这是错误的。

为了得到正确的答案,你真的应该在python中了解格式。

要解决这个问题,你可以像这样写代码。

if __name__ == "__main__": aline = input() astr,bstr = aline.strip().split() a,b = int(astr),int(bstr) sum = a + b print('{:,}'.format(sum))

答案 1 :(得分:1)

注意输入-1000和1时代码的行为。您需要处理减号,因为它不是数字。