如何实现可以存储输入并反复访问的存储系统?平均绩点计算器

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:平均学分绩点(函数专题)(完整代码)

pyhthon 求GPA平均学分绩点

2018-2019-1 20165334 《信息安全系统设计基础》第五周学习总结

求python通过键盘输入成绩,用分支结构算成绩相应的绩点并输出成绩绩点,计算绩点公式=成绩-60

如何更改向量中元素的值?