我有教程中的代码:
#File called test
def sanitize(time_string):
if '-' in time_string:
splitter = '-'
elif ':' in time_string:
splitter = ':'
else:
return(time_string)
(mins, secs) = time_string.split(splitter)
return(mins + '.' + secs)
def get_coach_data(filename):
with open(filename) as f:
data = f.readline()
temp1 = data.strip().split(',')
return(Athlete(temp1.pop(0), temp1.pop(0), temp1)
james = get_coach_data('james2.txt')
julie = get_coach_data('julie2.txt')
mikey = get_coach_data('mikey2.txt')
sarah = get_coach_data('sarah2.txt')
print(james.name+"'s fastest times are: " + str(james.top3()))
print(juliename+"'s fastest times are: " + str(julie.top3()))
print(mikey.name+"'s fastest times are: " + str(mikey.top3()))
print(sarah.name+"'s fastest times are: " + str(sarah.top3()))
我将这个类单独放置,因为我认为它可能导致了错误:
class Athlete:
def __init__(self, a_name, a_dob=None, a_times=[]):
self.name = a_name
self.dob = a_dob
self.times = a_times
def top3(self):
return(sorted(set([sanitize(t) for t in self.times]))[0:3])
回溯指向第 20 行的
SyntaxError
(james = get_coach_data('james2.txt')
)
出了什么问题?
我看到的错误是:
return(Athlete(temp1.pop(0), temp1.pop(0), temp1)
在
get_coach_data
应该只是
return Athlete(temp1.pop(0), temp1.pop(0), temp1)
17号线
juliename
应该是第 26 行的 julie.name