python - 为什么我的编辑功能是添加而不是编辑成员?
问题描述
我正在尝试为我的班级建立一个团队名册。我得到了代码不会产生任何错误的地方,但是当我编辑一个成员时,它会将一个成员添加到字典中,而不是编辑我告诉它的成员。
对于作业,我们必须有一个类(我还不完全理解这一点),而且我之前写过一个代码,当我们只是添加名称时,我能够获得一个功能代码,主要使用一段时间循环,但我已经删除了分数,因为我没有 def 语句。
class nameClass:
name = ""
phoneNumber = ""
jerseyNumber = ""
def __int__(self, name, phoneNumber, jerseyNumber):
self.name = name
self.phoneNumber = phoneNumber
self.jerseyNumber = jerseyNumber
def setname(self, name):
self.name = name
def setphoneNumber(self, phoneNumber):
self.phoneNumber = phoneNumber
def setjerseyNumber(self, jerseyNumber):
self.jerseyNumber = jerseyNumber
def getname(self):
return self.name
def getphoneNumber(self):
return self.phoneNumber
def getjerseyNumber(self):
return self.jerseyNumber
def displayData(self):
print(" ")
print("Player information: ")
print("-------------------------")
print("Name: ", self.name)
print("Phone number: ", self.phoneNumber)
print("Jersey number: ", self.jerseyNumber)
def displayMenu():
print("=========Main Menu=========")
print("1. Display Roster.")
print("2. Add Member.")
print("3. Remove Member.")
print("4. Edit Member.")
print("9. Exit Program.")
print(" ")
return int(input("Selection > "))
def printMembers(members):
if menuSelection == 1:
print("Team Roster:")
for x in members.keys():
print("Name: ", x, "\tPhone Number: ", x, "\tJersey Number: ", members[x])
print()
def addMember(members):
if menuSelection == 2:
newName = input("Enter new member's name: ")
newphoneNumber = int(input("Enter member's phone number: "))
newjerseyNumber = int(input("Enter member's jersey number: "))
members[newName] = (newName, newphoneNumber, newjerseyNumber)
return members
def removeMember(members):
if menuSelection == 3:
name = input("Enter the member's name you would like to remove: ")
if name in members:
del members[name]
else:
print("Member: ", name, "not found.")
return members
def editMember(members):
if menuSelection == 4:
oldName = input("Enter the name of the member you would like to edit: ")
if oldName in members:
newName = input("Enter the member's new name: ")
newphoneNumber = int(input("Member's new phone number: "))
newjerseyNumber = int(input("Member's new jersey number: "))
members[newName] = (newName, newphoneNumber, newjerseyNumber)
else:
print("No such member in memory.")
return members
print("Welome to the Team Manager")
members = {}
menuSelection = displayMenu()
while menuSelection != 9:
if menuSelection == 1:
printMembers(members)
elif menuSelection == 2:
members = addMember(members)
elif menuSelection == 3:
members = removeMember(members)
elif menuSelection == 4:
members = editMember(members)
menuSelection = displayMenu()
print("Exiting Program...")
就像我说的那样,运行时一切似乎都运行良好,除非您意识到当您打印花名册时,它会添加一个新成员,而不是像您告诉它的那样进行编辑。
解决方案
更改您的 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()
试试看。
推荐阅读
- laravel - Laravel Passport createToken 错误(DateTimeImmutable)
- android-camerax - 在相机中镜像X
- sql - SQL WHERE 子句使用 AND 但不使用 OR
- android - 为什么我们需要在 kotlin 范围函数中使用契约
- django - /upload_to_vimeo/ 'TypeError' 对象的 AttributeError 没有属性 'message'
- elasticsearch - 查询太多滚动上下文
- c# - 循环访问 JObject 并替换属性值
- spring-data-elasticsearch - spring-data-elasticsearch中的DBRef相当于什么
- python - 如何在 pandas 列中处理不同的日期格式?
- youtube - Youtube m3u8 url 无法播放视频 js 和 hls