如何实现可以存储输入并反复访问的存储系统?平均绩点计算器
Posted
技术标签:
【中文标题】如何实现可以存储输入并反复访问的存储系统?平均绩点计算器【英文标题】:How do I implement a storage system that can store the inputs, and access it over and over? GPA Calculator 【发布时间】:2020-09-21 11:07:43 【问题描述】:我正在尝试为 GPA 计算器编写一个程序,该程序允许用户输入每个主题,包括主题名称、最终成绩和它给出的学分的子类别。我希望这个程序能够被反复访问,并且想知道一种存储数据的方法,访问它并能够从存储中提取数据,以及更改和添加新数据。我想知道如何做到这一点,这样我就可以存储用户、用户名和密码以及他们的 gpa 数据。
class User:
"""This class represents users in this program"""
def __init__(self, username, password):
self.username = username
self.password = password
class Subject:
"""This class represents what is needed to calculate gpa with classes"""
def __init__(self, sub_name, final_grade, credit):
self.sub_name = sub_name
self.final_grade = final_grade
self.credit = credit
users =
username = str(input("Username: "))
password = str(input("Password: "))
users[username] = User(username)
users[password] = User(password)
【问题讨论】:
这能回答你的问题吗? Best method of saving data 【参考方案1】:最简单最快的方法是使用 Python 的内置 pickle 模块。
这是一个例子:
import pickle
class User:
def __init__(self, username, password):
self.username = username
self.password = password
user = User("Bryan", "132")
# Serializing the Python object into bytes using pickle
user_file = open("save_file_name.user", "wb")
pickle.dump(user, user_file)
# Deserializing the data into a Python object
user_file = open("save_file_name.user", "rb")
user = pickle.load(user_file)
print(user.username, user.password) # Output: Bryan 132
这适用于任何 Python 对象(例如:字典、列表等)。
【讨论】:
谢谢,这真的很有帮助,有没有更高级的方法可以存储更多,或者更有效,我以后可以尝试做?我想从泡菜开始,我想研究其他存储数据的方式。 您可以查看数据库。对于您的项目,面向文档的键值数据库或类似数据库就足够了,其中每个用户的数据可以存储为“文档”,其中每个文档中的每个字段都有“字段”和“值”。该数据库可以在本地存储和管理(tinydb),也可以通过在线服务(Firebase Firestore)使用。如果您正在寻找更复杂的数据库,您可以查看关系数据库(mysql、sqlite)以上是关于如何实现可以存储输入并反复访问的存储系统?平均绩点计算器的主要内容,如果未能解决你的问题,请参考以下文章
ZZNUOJ_C语言1103:平均学分绩点(函数专题)(完整代码)
2018-2019-1 20165334 《信息安全系统设计基础》第五周学习总结