格式化代码的正确方法是什么?

问题描述 投票:0回答:1
  1. 我一直试图解决我的脚本没有结果。我无法显示负载数据。它保存在members.txt中,如果打开则可以手动读取。如果有人可以就整个脚本提供任何其他建议,我们将不胜感激。 我已经重新定义了大大改变的脚本周围仍然没有运气。 如果vars()中的'file'导入os:wk_dir = os.path.dirname(os.path.realpath('file'))else:print('我们以交互方式运行脚本')class playerCLass(object):name =“”phone =“”数字= 0 def __init__(self, name, phone, number): self.name = name self.phone = phone self.number = number def setname(self, name): self.name = name def setphone(self, phone): self.phone = phone def setnumber(self, number): self.number = number def getname(self): return self.name def getphone(self): return self.phone def getnumber(self): return self.number def display_data(self): print("") print("Member information: ") print("Name:", self.name) print("Phone number:", self.phone) print("Jersey number:", self.number) def displayMenu(): print("===========Menu Selections===========") print("1. Display Team Roster.") print("2. Add Member.") print("3. Remove Member.") print("4. Edit Member.") print("5. Save Data.") print("6. Load Data.") print("9. Exit Program.") print("") return int(input("<<Selection>> ")) def printPlayer(players): print("Current members: ") if len(players) == 0: print("No current members in memory.") else: x = 1 while x < len(players): print(x) x = x + 1 def addPlayer(players): newName = input("Type in member's name to be added to the roster:") newPhone = input("Type in the member's phone number:") newNumber = int(input("Type in the member's jersey number:")) players[newName] = playerCLass(newName, newPhone, newNumber) return players def removePlayer(players): name = input("Enter member's name to be removed:") if name in players: del players[name] else: print("member's name not found in list: ") return players def editPlayer(players): oldName = input("Enter the name you want to edit: ") if oldName in players: newName = input("Enter a new name: ") newPhone = input("Enter new phone number: ") newNumber = int(input("Enter new jersey number: ")) players[oldName] = playerCLass(newName, newPhone, newNumber) else: print("No such name in memory: ") return players def saveData(): filename = input("Filename to save: ") print("Saving data...") outFile = open(filename, "wt") for x in players.keys(): name = players[int(x)].getname() phone = players[int(x)].getphone() number = str(players[x].getnumber()) outFile.write(name + "," + phone + "," + number + "\n") print("Data saved.") outFile.close() def loadData(): players = {} filename = input("Filename to load: ") inFile = open(filename, "rt") print("Loading data...") while True: inLine = inFile.readline() if not inLine: break inLine = inLine[:-1] name, phone, number = inLine.split(",") players[name] = (name, phone, number) print("Data Loaded Successfully.") inFile.close() return players print("Welcome to the Team Manager") players = {} menuSelection = displayMenu() print() while menuSelection != 9: if menuSelection == 1: printPlayer(players) elif menuSelection == 2: players = addPlayer(players) elif menuSelection == 3: players = removePlayer(players) elif menuSelection == 4: players = editPlayer(players) elif menuSelection == 5: saveData() elif menuSelection == 6: loadData() menuSelection = displayMenu() print("Exiting Program...")
python-3.x oop
1个回答
0
投票

如果您的问题特别没有让printPlayer工作,您可以这样做

def printPlayer(players):
    print("Current members: ")
    if len(players) == 0:
        print("No current members in memory.")
    #Iterate through dictionary of player name and player object and call
    #display data on each of them
    else:
        for name, player in players.items():
            print(player.display_data())

如果你根据你写的语句运行代码和输入,你应该得到这样的东西。

Welcome to the Team Manager
===========Menu Selections===========
1. Display Team Roster.
2. Add Member.
3. Remove Member.
4. Edit Member.
5. Save Data.
6. Load Data.
9. Exit Program.

<<Selection>> 1
Current members: 
No current members in memory.
===========Menu Selections===========
1. Display Team Roster.
2. Add Member.
3. Remove Member.
4. Edit Member.
5. Save Data.
6. Load Data.
9. Exit Program.

<<Selection>> 2
Type in member's name to be added to the roster:Joe
Type in the member's phone number:123
Type in the member's jersey number:456
===========Menu Selections===========
1. Display Team Roster.
2. Add Member.
3. Remove Member.
4. Edit Member.
5. Save Data.
6. Load Data.
9. Exit Program.

<<Selection>> 1
Current members: 

Member information: 
Name: Joe
Phone number: 123
Jersey number: 456
None
===========Menu Selections===========
1. Display Team Roster.
2. Add Member.
3. Remove Member.
4. Edit Member.
5. Save Data.
6. Load Data.
9. Exit Program.

<<Selection>> 
© www.soinside.com 2019 - 2024. All rights reserved.