0

我正在编写一个程序,它让用户输入一些名称,并使用这些名称创建一个文件。我正在使用 Python 3.2。

number = eval(input("How many names are there? "))
#Say the user enters 2
outfile = open('names.txt', 'w')

for i in range(number):
    name = input("Enter a name >> ")
#Say the user first enters Bob
#Then the user enters Joe

print (name, file=outfile)
outfile.close()
print ("Names have been written to file")

它有效,但有一个问题。现在显示的文件只有一行:“Joe”。其他名字都没有出现,只有最后一个。

4

2 回答 2

3

你有这个代码: -

for i in range(number):
    name = input("Enter a name >> ")
#Say the user first enters Bob
#Then the user enters Joe

print (name, file=outfile)

您打印的语句应该在循环内..

for i in range(number):
    name = input("Enter a name >> ")
    print (name, file=outfile)
于 2012-10-06T20:40:45.427 回答
0

缩进!由于您现在编写代码,因此该语句print (name, file=outfile)在循环之外执行一次。所以最后一次name被设置为任何东西就是剩下的那个。

要解决此问题,请确保在输入文件后立即调用写入文件的语句,为此,您应该将其缩进与输入语句一样深,调用次数与输入的次数一样多。

于 2012-10-06T20:42:20.067 回答