我正在尝试为我的班级建立一个团队名册。我到达了代码不会产生任何错误的地方,但是当我编辑成员时,它将成员添加到字典中,而不是编辑我告诉它的成员。
对于赋值,我们必须有一个类(我还不完全了解这一点),并且当我们只是添加名称时,我以前已经编写了代码,在那里我可以使用只是一个while循环,但是因为没有def语句,所以我删除了要点。
PrintWriter
就像我说的那样,运行它似乎一切正常,除了您知道在打印花名册时会添加一个新成员而不是像您告诉的那样进行编辑。
答案 0 :(得分:0)
更改您的printMembers():
def printMembers(members):
if menuSelection == 1:
print("Team Roster:")
for key, value in members.items():
print("Name: ", key, "\tPhone Number: ", value[1], "\tJersey Number: ", value[2])
print()
尝试一下。
答案 1 :(得分:0)
因为您不删除旧成员。编辑功能中的行members[newName] = (newName, newphoneNumber, newjerseyNumber)
只需使用新密钥添加新成员。除非您输入相同的名称(用作键),否则这种情况将被覆盖。
如果您尝试添加一个新成员,而该成员的名称与您的词典中已有的成员的名称相同,则会发生相同的行为。由于字典键必须是唯一的,并且您不会检查字典中是否存在相同的名称,因此它将覆盖前一个。
修复代码中编辑模式的最短方法是添加:
del members[oldName]
在editMember
语句中的if oldName in members
函数中。因此,您将删除 old 词典条目并将其替换为新条目。
通常,我建议您使用由代码自动生成的数字ID作为键,而不是名称。这将使编辑和添加新成员变得更加容易,并且允许使用具有相同名称的成员。
一个类(按照您的定义,但从未使用过,因此拥有它实在没有意义)应该可以帮助您轻松地完成此任务。