Python打印出不需要的额外换行符

时间:2015-11-14 02:03:20

标签: python input newline

为什么Python在运行下面的代码时总会打印一个额外的换行符?我试图重新编写代码以消除任何意外的空白区域,但它仍然打印出一个额外的新行。谁知道为什么?感谢。

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()

这在我的输入文件中:

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

1 个答案:

答案 0 :(得分:1)

你的代码打印额外换行符的原因是因为在names_in函数的最后一次迭代中,变量names是``,它被附加到names_list的末尾,导致print_names函数在结尾处运行print '',这会打印一个额外的换行符。