Python prints unwanted extra newline
Question: Why is that Python always prints an extra newline when I run the code below? I
tried to re-write the code to eliminate any unintended blank space but it
still prints out an extra new line. Anyone knows why? Thanks.

    
    
    def main():
        names_in()                          #This function import the file and read all the content and put the content into a list. 
    
        print_names(names_in)        # Before the names are sorted.
    
    def names_in():
        infile = open('names.txt','r')
        names_list = []                 #empty list.
        names = infile.readline()   # read contents.
    
        #loop for continue to read.
        while names != '':
            names = infile.readline()       #continue to the next name.
            names = names.rstrip('\n')    #return a copy of the string which all \n has been stripped from the end of the string.
            names_list.append(names)    #write names in the file into a list.
        infile.close()
    
        return names_list                     #return the list back to the function.
    
    
    
    def print_names(names_in):        #This function will print out the names in the list one per line, single-spaced.
        for item in names_in():
            print(item)
    
    
    main()
    

This in my input file:

    
    
    Riggs, Jerry
    Stone, Ruby
    Wood, Holly
    Dover, Ilene
    Funt, Ella
    Storm, Wayne
    Lowe, Lyle
    Free, Bjorn
    Caine, Candy
    Carr, Rex
    Downs, Mark
    Twain, Lionel
    Thorn, Rose
    Shore, Rocky
    Bush, Rose
    Waters, Muddy
    Graves, Doug
    Stone, Roxanne
    Rivers, Wade
    


Answer: The reason that your code prints an extra newline is because in the last
iteration of the `names_in` function, the variable `names` is ``, which gets
appended to the end of `names_list`, causing the `print_names` function to run
`print ''` at the end, which prints an extra newline.

