我正在写一个程序,让用户输入一些名字,然后用这些名字创建一个文件。我使用的是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“。其他名字都不会出现,只出现最后一个。
发布于 2012-10-07 04:40:45
你有这样的代码:
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)发布于 2012-10-07 04:42:20
缩进!现在编写代码时,语句print (name, file=outfile)将在循环外部执行一次。所以最后一次name被设置为任何值都是剩下的。
要解决此问题,请确保在输入后立即调用写入文件的语句,为此,您应该将其缩进到与输入语句一样深的位置,以便与输入被调用的次数一样多。
https://stackoverflow.com/questions/12763670
复制相似问题