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