Я пытаюсь составить командный список для своего класса. Я получил его там, где код не будет выдавать никаких ошибок, но когда я редактирую элемент, он добавляет элемент в словарь вместо того, чтобы редактировать элемент, которому я его сказал.
Для задания у нас должен быть класс (который я до сих пор не совсем понимаю), и я ранее писал код, когда мы просто добавляли имена, где я мог получить работающий код, используя в основном просто цикл while, но я снял очки, потому что у меня не было операторов 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...")
Как я уже сказал, кажется, что все работает просто отлично, когда он запущен, за исключением того, что вы понимаете, что при печати списка он добавляет новый элемент вместо редактирования, как вы сказали.