我很难理解如何实现startYear和endYear参数。我打开文件名然后读取数据。然后它将读取用户对state,gender,startYear和endYear的输入。正如我所看到的那样,它会查看性别,如果它与输入相匹配,那么它会在startYear上进行,如果它匹配,那么它将附加到列表中。
Get the top names.
:param state (str): The state, e.g. 'NY'
:param gender (str): The gender, e.g. 'F'
:param startYear (int): The starting year, e.g. 1969
:param endYear (int): The ending year, e.g. 2010
:return: The list of top Name objects
:rtype: list
def getTopNames(state, gender, startYear, endYear):
fileName = 'data/' + state + '.TXT'
topName = []
with open(fileName) as f:
for line in f:
loon = line.split()
if loon[1] == gender:
if line[2] == startYear:
Name += line[3]
topName.append(createName(loon[0], loon[1], int(loon[2]), int(loon[3])))
return topName
答案 0 :(得分:0)
如果startYear
是一个整数(如参数列表所示),那么您需要先将其转换为字符串,然后才能将其与一个字符串进行有意义的比较:
>>> startYear = 1999
>>> startYear == "1999"
False
>>> startYear = str(startYear)
>>> startYear == "1999"
True
此外,我怀疑你的意思是
if loon[2] == startYear: # instead of line[2] which would be a single character
最后,无需嵌套if
s:
if loon[1] == gender and loon[2] == startYear:
Name += loon[3]