Помогите исправить ошибки в программе

Irina_kalista

Новичок
Пользователь
Ноя 24, 2023
15
0
1
Код программы:

Python:
def three_most_expensive_purchases():

    """Три самые дорогие покупки

    :return: сумму трех самых дорогих покупок

    """

    file_path = "test_file/task_2.txt"

    # todo Здесь нужно написать код

    with open(file_path) as file:

        total_prices = []

    purchase = []

    for i in file:

        if i.strip():

            purchase.append(int(i.strip()))

        else:

            if purchase:

                total_prices.append(sum(purchase))

                purchase = []

    most_expensive_purchases = sum(sorted(total_prices)[-3:])

    return most_expensive_purchases
  
[ATTACH type="full" alt="1703166267200.png"]2523[/ATTACH]

Во вложении результат работы с ошибками и текст самой задачи
 

Вложения

  • 1703166267200.png
    1703166267200.png
    124,1 КБ · Просмотры: 4

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
435
119
43
Python:
def three_most_expensive_purchases(file):
    """Три самые дорогие покупки
    :return: сумму трех самых дорогих покупок
    """

    purchases = []
    with open(file) as f:
        for i in f:
            if ' ' in i:
                purchases.extend([int(j) for j in i.split()])
            else:
                purchases.append(int(i))

        most_expensive_purchases = sum(sorted(purchases)[-3:])

    return most_expensive_purchases


file_path = "test_file/task_2.txt"
print(three_most_expensive_purchases(file_path))
 
  • Мне нравится
Реакции: regnor

Irina_kalista

Новичок
Пользователь
Ноя 24, 2023
15
0
1
Python:
def three_most_expensive_purchases(file):
    """Три самые дорогие покупки
    :return: сумму трех самых дорогих покупок
    """

    purchases = []
    with open(file) as f:
        for i in f:
            if ' ' in i:
                purchases.extend([int(j) for j in i.split()])
            else:
                purchases.append(int(i))

        most_expensive_purchases = sum(sorted(purchases)[-3:])

    return most_expensive_purchases


file_path = "test_file/task_2.txt"
print(three_most_expensive_purchases(file_path))
1703172393518.png

Все равно не работает, в open в любом случае надо ставить изначальный file_path, иначе программа вообще не запускается
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
435
119
43
в open в любом случае надо ставить изначальный file_path, иначе программа вообще не запускается
это ни причем. Ошибка указывает на некорректный тип аргумента для функции int(). Добавь int(i.strip()) и int(j.strip()) в соответствующих местах
 

Irina_kalista

Новичок
Пользователь
Ноя 24, 2023
15
0
1
это ни причем. Ошибка указывает на некорректный тип аргумента для функции int(). Добавь int(i.strip()) и int(j.strip()) в соответствующих местах
Поменяла, те же самые ошибки1703237914141.png
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
219
43
21
Москва
Python:
def three_most_expensive_purchases():
    """Три самые дорогие покупки
    :return: сумму трех самых дорогих покупок
    """

    file_path = "test_file/task_2.txt"

    # todo Здесь нужно написать код
    purchase = []
    with open(file_path) as file:
        for line in file:
            purchase.append(sum(int(i) for i in line.split() if i.isdigit()))

    return sum(sorted(purchase)[-3:])

Попробуй так
 

Irina_kalista

Новичок
Пользователь
Ноя 24, 2023
15
0
1
Python:
def three_most_expensive_purchases():
    """Три самые дорогие покупки
    :return: сумму трех самых дорогих покупок
    """

    file_path = "test_file/task_2.txt"

    # todo Здесь нужно написать код
    purchase = []
    with open(file_path) as file:
        for line in file:
            purchase.append(sum(int(i) for i in line.split() if i.isdigit()))

    return sum(sorted(purchase)[-3:])

Попробуй так
Ошибка при подсчете, прикладываю еще файл с данными
1703247484648.png
 

Вложения

  • task_2.txt
    10,2 КБ · Просмотры: 3

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
219
43
21
Москва
Вот, с файлом понятнее


Python:
def three_most_expensive_purchases():
    """Три самые дорогие покупки
    :return: сумму трех самых дорогих покупок
    """

    file_path = r"D:\DISTR\Загрузки\task_2.txt"

    # todo Здесь нужно написать код
    with open(file_path) as file:
        purchase = file.read().split('\n\n')
        purchase = [sum(map(int, p.split())) for p in purchase]

    return sum(sorted(purchase)[-3:])
 
  • Мне нравится
Реакции: Irina_kalista

Форум IT Специалистов