2016-04-02 32 views
-2

üzerinden gönderilemedi. Girişin ilk satırı, test durumlarının sayısını belirten bir tam sayı T içeriyor. T test olgularının açıklaması aşağıdadır. Her bir test vakasının ilk satırı, ölçüm sayısını ve çıkartılacak en büyük ve en düşük değerlerin sayısını ifade eden iki boşluk ayrılmış tam sayı N ve K içerir. İkinci satır, boşlukları ayırmak için A, A2, ..., AN değerlerini içerir.Python'da Çalışma Zamanı Hatası codeChef

Her bir test durumu için, K en düşük ve K en yüksek ölçümleri kaldırdıktan sonra ortalama değeri içeren tek bir satır verin.

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 

cevap

0
var2=int(input("n")) 

girişin tüm satırını okumak ve daha sonra bir tam dönüştürmek için çalışacaktır. Her bir test vakasının ilk satırı, 2 boşluk ayrılmış tamsayıdan oluşur, bu nedenle input(), numaralı sayıları, örn. Giriş dosyası ikinci satırı

 
1 2 

içeriyorsa o zaman input() dize 1 2 dönecekti. Çizgiyi okuyabilir
>>> int('1 2') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: invalid literal for int() with base 10: '1 2' 

, onu bölmek ve böyle bir tamsayıya her öğeyi dönüştürmek: int() bir tam sayıya o dönüştürmek için çalışılıyor başarısız olur

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

benzer bir sorun var Her test vakasının ikinci satırında okumaya çalışırken, bu sayıların bir boşluk ayrılmış listesidir. Bunu şu ile düzeltebilirsiniz:

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