Python中的运行时错误无法在codeChef上提交时解决

时间:2016-04-02 11:20:49

标签: python

输入的第一行包含一个整数T,表示测试用例的数量。下面是T测试用例的描述。 每个测试用例的第一行包含两个空格分隔的整数N和K,表示测量次数以及将被删除的最大值和最小值的数量。 第二行包含N个空格分隔的整数A1,A2,...,AN,表示测量值。

对于每个测试用例,在删除K最低和K最大测量值后输出包含平均值的单行。

var1=int(input("t:"))

while var1:

    list1=[]

    var2=int(input("n"))
    var3=int(input("k"))

    for i in range(var2):
        list1.append(int(input())) 

    list1.sort()

    print(list1)

    for i in range(var3):
        f=len(list1)
        list1=list1[1:f-1]

    sumOfList=sum(list1)

    total=0
    number=var2-(2*var3)
    total=sumOfList/number
    print("%.6f"%total)
    var1-=1

1 个答案:

答案 0 :(得分:0)

var2=int(input("n"))

将读取整行输入,然后尝试将其转换为整数。每个测试用例的第一行由2个空格分隔的整数组成,因此input()将返回完整的行,包括两个数字,例如如果输入文件的第二行包含

1 2

然后input()将返回字符串1 2。尝试将其转换为int()的整数将失败:

>>> int('1 2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1 2'

您可以读取该行,将其拆分,并将每个项目转换为如下所示的整数:

n, k = [int(x) for x in input().split()]

尝试读取每个测试用例的第二行时存在类似的问题,这是一个以空格分隔的数字列表。你可以解决这个问题:

numbers = sorted(int(x) for x in input().split())