计算函数返回的n数之和,在不同的函数中

时间:2017-11-09 21:42:40

标签: python database function class

我正在尝试编写一个程序,用户可以输入有关他们必须学习的科目的信息,并计算他们学习所有主题所需的总时间。用户可以在一天结束时更新信息,例如他们留下多少页面来学习,以及他们估计学习一页所需的时间,以便程序重新计算他​​们剩下多少小时的学习时间。为此,它要求用户:

步骤1.输入每个主题的页数以及学习每页的时间长度
步骤2.然后计算研究主题需要多长时间 步骤3.计算研究所有受试者所需的时间总和
步骤4.将信息保存到数据库中 步骤5.当用户提出要求时提供所有信息(此部分的功能已被排除在下面的代码中以供参考)

我陷入了第3步。我无法让程序利用第2步中的信息来计算研究每个主题所需的所有不同时间的总和,因为我似乎无法转移从一个功能到另一个功能的信息,但无法弄清楚我缺少什么。有什么想法吗?

谢谢!

这是代码:

TEXT_FILE_NAME = '/Users/stephanierobinson/Desktop/database.txt'

class StudyHelper(object):
    def __init__(self):
        self.database_info = self.read_information_from_database()
        self.time_to_study_subject = self.time_to_study_subject

    def save_information_to_database(self, info):
        with open(TEXT_FILE_NAME, 'w') as f:
            f.truncate()
            json.dump(info, f)

    def read_information_from_database(self):
        with open(TEXT_FILE_NAME, 'r') as f:
            database_info = json.loads(f.readline())
            return database_info

    def total_time_to_study(self):
        Final_total=[self]
        sum_time_to_study_subject = (sum(Final_total))
        print("You have %s hours to go before completing your study program" %)

        subject_info = {'Total study time = sum_time_to_study_subject'},
        return subject_info

    def get_subject_info_from_user(self):
       number_of_pages = int(input("Number of pages to study: "))
       average_time_per_page = int(input("Average time per page (in minutes): 
       "))
       time_to_study_subject = number_of_pages * average_time_per_page / 60
       self.Final_total.append(time_to_study_subject)

       print ("It will take you %s hours to complete this subject" 
                %time_to_study_subject)


       subject_info = {'Number of pages to study': number_of_pages,
                       'Average time per page(in hours)': average_time_per_page,
                       'Time to study the subject': time_to_study_subject
                       },

       return subject_info

1 个答案:

答案 0 :(得分:0)

在您的学习辅助课程中,定义一个变量来保存您的列表。 那应该是Final_total。

在total_time_to_study()中:

def total_time_to_study(self):
   Final_total=[self] <---- this is a list with your helper object, not a list of numbers
   sum_time_to_study_subject = (sum(Final_total)) <--- should be sum(self.Final_total)
   print("You have %s hours to go before completing your study program" %)

   subject_info = {'Total study time = sum_time_to_study_subject'},
   return subject_info

你应该用sum(self.Final_total)计算总和

您正在将局部变量Final_total设置为包含帮助程序对象的列表。哪个不对。

您的打印也是错误的,因为它缺少要打印的变量。

print("You have %s hours to go before completing your study program" % sum_time_to_study_subject)