我正在编写一个程序,用户输入一些名称,然后创建一个带有这些名称的文件。我正在使用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”。没有其他名称出现,只有最后一个。
答案 0 :(得分: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)
你的print语句应该在循环内..
for i in range(number):
name = input("Enter a name >> ")
print (name, file=outfile)
答案 1 :(得分:0)
压痕!在您的代码现在编写时,语句print (name, file=outfile)
将执行一次,并在循环之外执行。所以最后一次name
设置为任何东西都是剩下的。
要解决此问题,请确保在输入后立即调用写入文件的语句,为此,您应该将其缩进到输入语句的深度,以便在输入时调用多次被带走。