如何实现param startYear和endYear?

2024-07-04 07:36:59 发布

您现在位置: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

Tags: thereturnparamtoplinegenderyearlist
1条回答
网友
1楼 · 发布于 2024-07-04 07:36:59

如果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

if loon[1] == gender and loon[2] == startYear:
    Name += loon[3]

相关问题 更多 >

    热门问题