Задание «Вывести» мин: 1,2,3,5,6 - 1 / Макс .: 1,2,3,5,6 - 6 / Макс: 1,2,3,5,6 -3,4 - PullRequest
0 голосов
/ 13 октября 2019

Не удается получить правильный ответ в строке 3. Среднее значение 1,2,3,5,6 - 3,4. Ближайшее значение - 3,0

. Я пробовал несколько разных подходов, чтобы получить список вСтрока, но мне не хватает чего-то маленького прямо передо мной

    import math
    fileInput = open("input.txt", "r+")
    fileOutput = open("output.txt", "w+")

#Get Min 
    for line in fileInput:
        if "min" in line:
#Remove colons 
            num = line.split(":")
#Get elements at index 1 + 
            line= num[1]
#Remove comma
            lines = line.split(',')
#Use min function to get min 
            minimum = min(lines)
            print(f"The min of {line} is {minimum} \n")
            fileOutput.write(f"The min of {line} is {minimum} \n")
        elif "max" in line:
            num = line.split(":")
            line = num[1]
            lines = line.split(',')
            maximum = max(lines)
            print(f"The max of {line} is {maximum} \n")
            fileOutput.write(f"The max of {line} is {maximum} \n")    
        elif "avg" in line:
            num = line.split(":")
            line = num[1]
            lines = line.split(',')

            average = sum/len(lines)
            print(f"The avg of {line} is {average} \n")
            fileOutput.write(f"The avg of {line} is {average} \n")

    fileOutput.close()


The min of [1, 2, 3, 5, 6] is 1
The max of [1, 2, 3, 5, 6] is 6
The avg of [1, 2, 3, 5, 6] is 3.4

1 Ответ

0 голосов
/ 14 октября 2019
Changes to "avg" section

elif "avg" in line:
        num = line.split(":")
        line = num[1]
        lines = line.split(',')

# Convert to float and do calculation
        avr = map(float,lines)
        average = sum(avr) / len(lines)
        print(f"The avg of {line} is {float(average)} \n")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...