我创建了一个程序,允许用户在我拥有的文本文件中输入他们的姓名。问题是我现在需要使其成为一个while循环,以允许输入多个名称。
我能够通过for循环来获得它,但是我特别在寻找while循环。下面是我的代码,到目前为止没有循环。
filename = input ("visitor_log.txt: ");
with open("visitor_log.txt", "w") as f:
f.write(input("Please write your name:"));
实际结果会将输入的姓名保留为我可以打印的列表。
答案 0 :(得分:1)
while循环有条件,只要条件为真,循环将继续执行。
while some_condition:
//Do some stuff
//Change your condition if necessary
条件some_condition评估为True时,循环范围内的代码将继续执行。如果您的条件永远不会为假,那么循环将永远执行。
您需要做的是确定条件,以继续循环使用代码,然后根据您的输入根据需要更改条件。这是我的示例,它将读取名称,直到输入单词“ END”为止。
with open("visitor.txt", "a") as f:
accept_more_visitors = True
while accept_more_visitors:
input_value = input("Please write your name, or 'END' if you are done.")
if input_value == "END":
break
f.write(input_value)
另一个主要区别是您正在打开带有标志“ w”的文件,该标志将覆盖文件。您可能希望将标志“ a”附加到其末尾。
答案 1 :(得分:0)
# filename = input ("visitor_log.txt: ")
with open("./visitor_log.txt", "w") as f:
text = ''
while text != 'exit\n':
text = raw_input("Please write your name:")
print(text)
text = str(text) + "\n"
f.write(text)
raw_input
最好input
用于文本
答案 2 :(得分:0)
这应该有效
names = []
while True:
name = input ('Enter your name: ')
names.append(name)
if input ('Hit enter to add another name, or type done to continue') == 'done':
break
towrite =''
with open("visitor_log.txt", "w") as f:
for name in names:
towrite+= name + "\n"
f.write(towrite)
它的作用是让用户输入所需的任意多个名称,然后将其添加到列表中,然后将名称写入visitor_log.txt。
名称存储在名称列表中,因此您可以遍历该列表并对其进行所需的操作。
答案 3 :(得分:0)
尝试一下:
filename = input ("visitor_log.txt: ")
with open("visitor_log.txt", "a") as f:
i=0
while (i<5):
f.write(input("Please write your name:"))
f.write('\n')
i +=1