如何实现param startYear和endYear?

时间:2014-10-11 19:55:20

标签: python

我很难理解如何实现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

1 个答案:

答案 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]