Python 如何实现一个能够存储输入并反复访问输入的存储系统?GPA计算器
我正试图为GPA计算器编写一个程序,让用户输入每个科目,包括科目名称、最终成绩和学分的子类别。我希望这个程序能够被一次又一次地访问,希望知道一种存储数据、访问数据、从存储器中提取数据以及更改和添加新数据的方法。我想知道如何做到这一点,这样我就可以存储用户,用户名和密码,以及他们的gpa数据Python 如何实现一个能够存储输入并反复访问输入的存储系统?GPA计算器,python,Python,我正试图为GPA计算器编写一个程序,让用户输入每个科目,包括科目名称、最终成绩和学分的子类别。我希望这个程序能够被一次又一次地访问,希望知道一种存储数据、访问数据、从存储器中提取数据以及更改和添加新数据的方法。我想知道如何做到这一点,这样我就可以存储用户,用户名和密码,以及他们的gpa数据 class User: """This class represents users in this program"""
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)
最简单、最快的方法是使用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对象(例如:字典、列表等)。这是否回答了您的问题?谢谢,这真的很有帮助,有没有一种更先进的方法可以存储更多,或者更有效,我可以尝试在未来这样做?我想从pickle开始,我想研究其他存储数据的方法。你可以查看数据库。对于您的项目,面向文档的键值数据库或类似数据库应该足够了,其中每个用户的数据可以存储为“文档”,其中每个文档中的每个字段都有“字段”和“值”。数据库可以在本地存储和管理(tinydb),也可以通过在线服务(Firebase Firestore)使用。如果您正在寻找一个更复杂的数据库,您可以研究关系数据库(MySQL、sqlite)