我正在尝试编写一个组织棒球运动员统计数据和信息的程序。我需要使用一个输入文件,其中包含要组织的所有数据,包括玩家姓名,团队,命中记录等。
我遇到了我定义的其中一个功能的问题,我不确定从哪里开始。每次我运行程序时,我都会在第73,25,53,49行中收到错误 - 所有这些都与name "processFile" is not defined
有关。我不确定我是否应该将函数外部定义为变量?
我发布了目前为止的代码,以及我正在组织的数据文件。谢谢!
print("Welcome to The Baseball Database!")
def terminate():
"""This function quits the program"""
userExit = input("Are you sure you want to quit? Yes or No?: ")
userExit = userExit.lower()
if userExit == "yes":
print("The Baseball Database is terminating gracefully.")
exit()
if userExit == "no":
introRerun()
else:
print("Please enter 'Yes' or 'No'.")
terminate()
def assist():
"""This function offers help to the user"""
print("The Baseball Database supports the following command functions:")
print("INPUT - which allows you to input a file path")
print("TEAM - which allows you to identify a team, and provide info about the players")
print("REPORT - which reports the number of hits")
print("HELP - for assistance")
print("QUIT - to exit the database")
print("Please choose from one of the above functions.")
introRerun()
def filePath():
"""This function allows the user to input a file"""
file = input("Please enter the file path to read: ")
fileObject = open(file)
return fileObject
def introRerun():
"""This function reprompts the user to enter a command"""
introLoop = input("Please enter a command, or type 'Help' for a list of options: ")
introLoop = introLoop.lower()
if introLoop == "quit":
terminate()
if introLoop == "help":
assist()
if introLoop == "input":
filePath()
if introLoop == "team":
processFlie(fileObject)
else:
print("Please enter a valid command, for a list of options type 'Help'")
introRerun()
def processFile(inputFilePath):
"""This function processes the input file"""
myList = None
fileHandle = open(inputFilePath, "r")
for line in fileHandle:
tokens = line.split(sep = ";")
entry = {"Name" : tokens [0], "Team" : tokens [1], "Games Played" : tokens [2], "At Bats" : tokens [3], "Runs Scored" : tokens [4], "Hits" : tokens [5], "Doubles" : tokens [6], "Triples" : tokens [7], "Homeruns" : tokens [8]}
myList.append(entry)
return myList
playerList = None
#playerList = processFile(filePath)
intro = input("Please enter a command, or type 'Help' for a list of options: ")
intro = intro.lower()
if intro == "help":
assist()
if intro == "input":
filePath()
introRerun()
if intro == "team":
if playerList != None:
print("Error! You must first INPUT a file to be read!")
filePath()
else:
filePath()
if intro == "no" or intro == "quit":
terminate()
输入:
De Aza, Alejandro; CWS; 153; 607; 84; 160; 27; 4; 17
Hunter, Torii; DET; 144; 606; 90; 184; 37; 5; 17
Hamilton, Josh; LAA; 151; 576; 73; 144; 32; 5; 21
Choo, Shin-Soo; CIN; 154; 569; 107; 162; 34; 2; 21
Upton, Justin; ATL; 149; 558; 94; 147; 27; 2; 27
Cabrera, Miguel; DET; 148; 555; 103; 193; 26; 1; 44
Posey, Buster; SF; 148; 520; 61; 153; 34; 1; 15
Suzuki, Ichiro; NYY; 150; 520; 57; 136; 15; 3; 7
Holliday, Matt; STL; 141; 520; 103; 156; 31; 1; 22
Headley, Chase; SD; 141; 520; 59; 130; 35; 2; 13
Cabrera, Asdrubal; CLE; 136; 508; 66; 123; 35; 2; 14
Pierzynski, A.J.; TEX; 134; 503; 48; 137; 24; 1; 17
Hoes, L.J.; HOU; 46; 167; 24; 48; 7; 2; 1
Young Jr., Eric; COL; 57; 165; 22; 40; 9; 3; 1
Hairston, Scott; CHC; 52; 99; 13; 17; 2; 0; 8
d'Arnaud, Travis; NYM; 31; 99; 4; 20; 3; 0; 1
Ankiel, Rick; NYM; 20; 66; 7; 12; 4; 1; 2
Ankiel, Rick; HOU; 25; 62; 6; 12; 3; 0; 5
den Dekker, Matt; NYM; 27; 58; 7; 12; 1; 0; 1
Sanchez, Angel; CWS; 1; 2; 0; 0; 0; 0; 0
答案 0 :(得分:1)
您定义processFile
,但使用processFlie
反转i
和l
...只是错误的错字。
但您的代码中还有许多其他问题:
myList
调用None
之前将其初始化为append
(应该是:myList = []
)祝你好运,当所有问题得到解决后,它将会运行: - )