Как мне прочитать файл, добавить его содержимое? - PullRequest
1 голос
/ 24 января 2020

Я новичок в программировании в целом, особенно с использованием Python. Я пытаюсь написать функцию, которая принимает файл в качестве параметра, добавляет содержимое (во время приведения типа к float) и возвращает среднее значение. Файл называется "stuff.txt" и является небольшим, состоящим из:

3
2
1
4.0
5.0

Это то, что у меня есть до сих пор:

def my_average(file):
    numbers = []
    with open(file) as f:
        for line in f:
            numbers.append(float(f.readline()))
    return sum(numbers)/len(numbers)


my_average('stuff.txt')

Он продолжает пытаться привести строку ' stuff.txt 'к float и выбрасыванию ошибок. помощь

1 Ответ

0 голосов
/ 24 января 2020

Содержит ли файл строку stuff.txt внутри? Как написано, единственная ошибка в вашем коде заключается в том, что вы отбрасываете четные строки (те, которые неявно читаются в line в for l oop), сохраняя только нечетные (из вызов readline).

Это можно исправить, изменив l oop на:

def my_average(file):
    numbers = []
    with open(file) as f:
        for line in f:
            numbers.append(float(line))  # Convert the line you've got, not a new one from readline
    return sum(numbers)/len(numbers)

Если некоторые строки могут быть недопустимыми, например, потому что файл начинается с stuff.txt вы можете молча игнорировать эти строки, перехватывая исключение, анализируя их и игнорируя его:

def my_average(file):
    numbers = []
    with open(file) as f:
        for line in f:
            try:
                numbers.append(float(line))
            except ValueError:
                pass
    return sum(numbers)/len(numbers)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...