附加列表的结束循环
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了附加列表的结束循环相关的知识,希望对你有一定的参考价值。
我需要创建一个程序,在附加列表中询问用户名,然后在用户键入“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']
- 而不是退出我希望程序退出。
答案
您应该在另一个名为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)
另一答案
你有正确的想法。但是一旦你从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)
另一答案
您正在将列表与字符串'q'进行比较,该字符串始终为false。你可以修改
while True:
inp = input("Please enter your first name, "
"type q to exit: ", )
names.append(inp)
print(names)
if inp == "q":
break
另一答案
问题是您在检查之前是否已经附加到列表中以查看它是否为“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
另一答案
您在检查退出时将整个列表names
与"q"
进行比较。相反,您想检查最近的输入是否为"q"
。
您可以通过检查列表中的最后一个元素来完成此操作,例如通过改变你的条件
if names[-1] == "q"
其余代码可以保持不变。
以上是关于附加列表的结束循环的主要内容,如果未能解决你的问题,请参考以下文章