Пытаюсь записать свой отчет о доходах в файл .txt

#python

Вопрос:

Я сделал два отдельных файла. Это мой первый файл:

 def revenue_report():
    revenue1 = float(input("Enter revenue for month 1: "))
    revenue2 = float(input("Enter revenue for month 2: "))
    revenue3 = float(input("Enter revenue for month 3: "))
    sum2 = revenue1   revenue2
    sum3 = revenue1   revenue2   revenue3
    print(f'''
Revenue Report
--------------------------''')
    print("Revenue for 1: $     {:,.2f} | Cumm. Total: $     {:,.2f}".format(revenue1, revenue1))
    print("Revenue for 2: $     {:,.2f} | Cumm. Total: $     {:,.2f}".format(revenue2, sum2))
    print("Revenue for 3: $     {:,.2f} | Cumm. Total: $     {:,.2f}".format(revenue3, sum3))
    print("The company has made a total of ${:,} in revenue in the past quarter.".format(sum3))
 

Что касается моего второго файла, я должен импортировать функцию из первого файла, а затем внести изменения в функцию, чтобы она получала имя входного файла от вызывающего абонента для печати
отчета о доходах в текстовый файл. Затем мне нужно вызвать функцию отчета о доходах, чтобы получить
доходы за квартал от пользователя и, наконец, распечатать отчет в текстовый файл.

Мое второе досье:

 import Task63a

filename = "revenue_report.txt"
file = open(filename, "w")
data = str(Task63a.revenue_report())
file.write(data)
file.close()
 

Однако это дает мне revenue_report.txt файл, в котором ничего нет. Почему это так? Объяснение в терминах новичка было бы весьма ценно. Заранее благодарю вас!

Ответ №1:

Ваша функция не возвращает никакого значения. Если функция в python ничего не возвращает, она всегда ничего не возвращает.

Вы можете создать текстовую переменную и добавить в нее новые строки. Затем вы должны вернуть свою переменную.

 def return_string():
    txt = "Line 1n"
    txt  = "Line 2n"
    return txt
 

«n»-это окончания строк, это позволяет каждой строке начинаться с новой строки в текстовом файле.

Я думаю, что это будет выглядеть так, но я не проверял это:

 def revenue_report():
    revenue1 = float(input("Enter revenue for month 1: "))
    revenue2 = float(input("Enter revenue for month 2: "))
    revenue3 = float(input("Enter revenue for month 3: "))
    sum2 = revenue1   revenue2
    sum3 = revenue1   revenue2   revenue3
    txt = 'Revenue Reportn--------------------------')
    txt  = "Revenue for 1: $     {:,.2f} | Cumm. Total: $     {:,.2f}n".format(revenue1, revenue1)
    txt  = "Revenue for 2: $     {:,.2f} | Cumm. Total: $     {:,.2f}n".format(revenue2, sum2)
    txt  = "Revenue for 3: $     {:,.2f} | Cumm. Total: $     {:,.2f}n".format(revenue3, sum3)
    txt  = "The company has made a total of ${:,} in revenue in the past quarter.".format(sum3))
    return txt