我需要创建一个程序,在附加列表中询问用户名,然后在用户键入“ q:”时结束。我创建了代码以询问名称,但是在哪里结束却有麻烦。在我认为应该的时候还没有破裂。它一直在运行
我尝试过使其成为for循环和while循环,而while循环取得了更大的成功,但是我可能是错误的。
# names of people that I know
names = ["Billy", "Trevor", "Rachel", "Victoria", "Steve"]
while True:
names.append(input("Please enter your first name, "
"type q to exit: ", ))
print(names)
if names == "q":
break
我希望结果是:
Please enter your first name, type q to exit: jon
['Billy', 'Trevor', 'Rachel', 'Victoria', 'Steve', 'jon']
Please enter your first name, type q to exit: quit
['Billy', 'Trevor', 'Rachel', 'Victoria', 'Steve', 'jon', 'quit']
答案 0 :(得分:2)
您应该在另一个名为name
的变量中输入内容,并在看到q时中断循环。现在,您将输入直接添加到names
列表中
names = ["Billy", "Trevor", "Rachel", "Victoria", "Steve"]
while True:
name = input("Please enter your first name, "
"type q to exit: ", )
if name == "q":
break
names.append(name)
print(names)
答案 1 :(得分:1)
您有正确的想法。但是,一旦您从input()
获得名称,便会立即将其插入列表中,然后再检查是否要退出该程序。因此解决方案是检查退出信号,然后附加名称。
# names of people that I know
names = ["Billy", "Trevor", "Rachel", "Victoria", "Steve"]
while True:
name = input("Please enter your first name, "
"type q to exit: ", )
if name == "q":
break
else:
names.append(name)
print(names)
答案 2 :(得分:1)
问题在于您已经在检查列表是否为'q'之前添加了该列表。同样,从您的问题中,您只想退出“ q”。不是“退出”或“ q”。如果您也想检查“退出”,则应将其添加到if
条件中。
此外,请执行此检查并仅在不是退出条件的情况下追加。所以我建议:
# names of people that I know
names = ["Billy", "Trevor", "Rachel", "Victoria", "Steve"]
while True:
name = input("Please enter your first name, type q to exit: ")
if name == "q" or name == "quit":
break
names.append(name)
print(names)
如果您要坚持使用自己的方法,那么在中断操作之前,您要删除最后一个元素,因为这可能是“ q”或“ quit”。所以:
names = ["Billy", "Trevor", "Rachel", "Victoria", "Steve"]
while True:
names.append(input("Please enter your first name, "
"type q to exit: ", ))
print(names) #Printing here will still show you the name 'q' or 'quit'. Move this down too.
if names[-1] == 'q' or names[-1] == 'quit':
names.pop() #This will remove the 'q' or 'quit'
break
答案 3 :(得分:0)
您要检查退出时将整个列表names
与"q"
进行比较。相反,您想检查最近的输入是否为"q"
。
您可以通过检查列表中的最后一个元素来完成此操作,例如通过将条件更改为
if names[-1] == "q"
其余代码可以保留不变。
答案 4 :(得分:0)
您正在将列表与字符串“ q”进行比较,该字符串始终为false。您可以修改
while True:
inp = input("Please enter your first name, "
"type q to exit: ", )
names.append(inp)
print(names)
if inp == "q":
break